Documentation

cvc5

@[extern kind_toString]

Produces a string representation.

@[instance_reducible]
Equations
@[extern kind_hash]

Produces a hash.

@[instance_reducible]
Equations
@[extern sortKind_toString]

Produces a string representation.

@[extern sortKind_hash]

Produces a hash.

@[extern proofRule_toString]

Produces a string representation.

@[extern proofRule_hash]

Produces a hash.

@[extern skolemId_toString]

Produces a string representation.

@[extern skolemId_hash]

Produces a hash.

@[extern proofRewriteRule_toString]

Produces a string representation.

@[extern proofRewriteRule_hash]

Produces a hash.

@[extern unknownExplanation_toString]

Produces a string representation.

@[extern unknownExplanation_hash]

Produces a hash.

@[extern roundingMode_toString]

Produces a string representation.

@[extern roundingMode_hash]

Produces a hash.

@[extern blockModelsMode_toString]

Produces a string representation.

@[extern blockModelsMode_hash]

Produces a hash.

@[extern learnedLitType_toString]

Produces a string representation.

@[extern learnedLitType_hash]

Produces a hash.

@[extern proofComponent_toString]

Produces a string representation.

@[extern proofComponent_hash]

Produces a hash.

@[extern proofFormat_toString]

Produces a string representation.

@[extern proofFormat_hash]

Produces a hash.

@[extern findSynthTarget_toString]

Produces a string representation.

@[extern findSynthTarget_hash]

Produces a hash.

@[extern inputLanguage_toString]

Produces a string representation.

@[extern inputLanguage_hash]

Produces a hash.

Encapsulation of a three-valued solver result, with explanations.

Equations
Instances For

    Encapsulation of a three-valued solver result, with explanations.

    Equations
    Instances For

      The sort of a cvc5 term.

      Equations
      Instances For

        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.

        Equations
        Instances For

          A cvc5 term.

          Equations
          Instances For

            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.

            Equations
            Instances For
              inductive cvc5.Error :

              Error type.

              Instances For
                Equations
                Instances For
                  @[instance_reducible]
                  Equations
                  @[reducible, inline]
                  abbrev cvc5.EnvT (m : Type → Type) (α : Type) :

                  Cvc5 environment monad transformer.

                  Most monadic functions in this API use the non-transformer monad cvc5.Env, where m := BaseIO.

                  When using an EnvT m α, do make sure m is such that MonadLiftT BaseIO m which gives MonadLiftT Env (EnvT m).

                  Equations
                  Instances For
                    @[reducible, inline]
                    abbrev cvc5.Env (α : Type) :

                    Cvc5 environment monad in BaseIO.

                    Equations
                    Instances For

                      String representation of an error.

                      Equations
                      Instances For
                        def cvc5.Error.unwrap! {α : Type u_1} [Inhabited α] :
                        Except Error α → α

                        Panics on errors, otherwise yields the ok result.

                        Equations
                        Instances For
                          @[instance_reducible]
                          Equations

                          Manager for cvc5 terms.

                          Equations
                          Instances For
                            @[extern termManager_new]

                            Constructor.

                            A cvc5 solver.

                            Equations
                            Instances For
                              @[extern solver_new]

                              Constructor.

                              • tm The associated term manager instance.

                              A cvc5 datatype constructor declaration.

                              A datatype constructor declaration is a specification used for creating a datatype constructor.

                              Equations
                              Instances For
                                @[extern datatypeConstructorDecl_toString]

                                A string representation of this datatype constructor declaration.

                                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:

                                Equations
                                Instances For
                                  @[extern datatypeDecl_toString]

                                  Get a string representation of this datatype declaration.

                                  @[extern datatypeSelector_toString]

                                  Gte the string representation of this datatype selector.

                                  @[extern datatypeConstructor_toString]

                                  A string representation of this datatype.

                                  A cvc5 datatype.

                                  Equations
                                  Instances For
                                    @[extern datatype_toString]

                                    A string representation of this datatype.

                                    A Sygus Grammar.

                                    This class can be used to define a context-free grammar of terms. Its interface coincides with the definition of grammars in the SyGuS IF 2.1 standard.

                                    Equations
                                    Instances For
                                      @[extern grammar_toString]

                                      A string representation of this grammar.

                                      Encapsulation of a command.

                                      Commands are constructed by the InputParser and can be invoked on the Solver and Command.

                                      Equations
                                      Instances For
                                        @[extern command_toString]

                                        Get a string representation of this command.

                                        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.

                                        Equations
                                        Instances For
                                          @[extern symbolManager_new]

                                          Constructor.

                                          • tm The associated term manager instance.

                                          This type 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.

                                          Equations
                                          Instances For

                                            Construct an input parser.

                                            • 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.
                                            Equations
                                            Instances For
                                              @[extern result_beq]

                                              Comparison for structural equality.

                                              @[instance_reducible]
                                              Equations
                                              @[extern result_hash]

                                              Hash function for cvc5 sorts.

                                              @[extern result_isSat]

                                              True if this result is from a satisfiable checkSat or checkSatAssuming query.

                                              @[extern result_isUnsat]

                                              True if this result is from a unsatisfiable checkSat or checkSatAssuming query.

                                              @[extern result_isUnknown]

                                              True if this result is from a checkSat or checkSatAssuming query and cvc5 was not able to determine (un)satisfiability.

                                              @[extern result_getUnknownExplanation]

                                              An explanation for an unknown query result.

                                              Note that if the result is (un)sat, this function returns UnknownExplanation.UNKNOWN_REASON.

                                              An explanation for an unknown query result, none if the result in not unknown.

                                              Equations
                                              Instances For
                                                @[extern result_toString]

                                                A string representation of this result.

                                                @[extern synthResult_toString]

                                                A string representation of this synthesis result.

                                                @[extern synthResult_hash]

                                                Hash function for synthesis results.

                                                @[extern synthResult_beq]

                                                Equality of two synthesis results.

                                                @[extern synthResult_isNull]

                                                Determine if a given synthesis result is empty (a nullary result) and not an actual result returned from a synthesis query.

                                                @[extern synthResult_hasSolution]

                                                True if the synthesis query has a solution.

                                                @[extern synthResult_hasNoSolution]

                                                True if the synthesis query has no solution. In this case, it was determined that there was no solution.

                                                @[extern synthResult_isUnknown]

                                                True if the result of the synthesis query could not be determined.

                                                @[extern datatypeConstructorDecl_null]

                                                The null datatype constructor declaration.

                                                @[extern datatypeConstructorDecl_isNull]

                                                True if this DatatypeConstructorDecl is a null declaration.

                                                @[extern datatypeConstructorDecl_beq]

                                                Equality operator.

                                                @[extern datatypeConstructorDecl_hash]

                                                Hash function for datatype declarations.

                                                @[extern datatypeConstructorDecl_addSelector]

                                                Add datatype selector declaration.

                                                • name The name of the datatype selector declaration to add.
                                                • sort The codomain sort of the datatype selector declaration to add.
                                                @[extern datatypeConstructorDecl_addSelectorSelf]

                                                Add datatype selector declaration whose codomain type is the datatype itself.

                                                • name The name of the datatype selector declaration to add.
                                                @[extern datatypeConstructorDecl_addSelectorUnresolved]

                                                Add datatype selector declaration whose codomain sort is an unresolved datatype with the given name.

                                                • name The name of the datatype selector declaration to add.
                                                • unresDatatypeName The name of the unresolved datatype. The codomain of the selector will be the resolved datatype with the given name
                                                @[extern datatypeDecl_null]

                                                The null datatype declaration.

                                                @[extern datatypeDecl_isNull]

                                                Determine if this datatype declaration is nullary.

                                                @[extern datatypeDecl_beq]

                                                Equality operator.

                                                @[extern datatypeDecl_hash]

                                                Hash function for datatype declarations.

                                                @[extern datatypeDecl_addConstructor]

                                                Add datatype constructor declaration.

                                                • ctor The datatype constructor declaration to add.
                                                @[extern datatypeDecl_getNumConstructors]

                                                Get the number of constructors for this datatype declaration.

                                                @[extern datatypeDecl_isParametric]

                                                Determine if this datatype declaration is parametric.

                                                Warning: this function is experimental and may change in future versions.

                                                Get the name of this datatype declaration.

                                                Equations
                                                Instances For

                                                  Get the name of this datatype declaration.

                                                  Equations
                                                  Instances For
                                                    @[extern datatypeDecl_getName]

                                                    Get the name of this datatype declaration.

                                                    @[extern datatypeDecl_isResolved]

                                                    Determine if this datatype declaration is resolved (has already been used to declare a datatype).

                                                    @[extern datatypeSelector_null]

                                                    The null datatype constructor.

                                                    @[extern datatypeSelector_isNull]

                                                    True if this datatype is a null object.

                                                    @[extern datatypeSelector_beq]

                                                    Equality operator.

                                                    @[extern datatypeSelector_hash]

                                                    Hash function for datatype selectors.

                                                    Get the name of this datatype selector.

                                                    Equations
                                                    Instances For

                                                      Get the name of this datatype selector.

                                                      Equations
                                                      Instances For
                                                        @[extern datatypeSelector_getName]

                                                        Get the name of this datatype selector.

                                                        @[extern datatypeSelector_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 Kind.APPLY_SELECTOR.

                                                        @[extern datatypeSelector_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 Kind.APPLY_UPDATER.

                                                        @[extern datatypeSelector_getCodomainSort]

                                                        Get the codomain sort of this selector.

                                                        @[extern datatypeConstructor_null]

                                                        The null datatype constructor.

                                                        @[extern datatypeConstructor_isNull]

                                                        True if this datatype is a null object.

                                                        @[extern datatypeConstructor_beq]

                                                        Equality operator.

                                                        @[extern datatypeConstructor_hash]

                                                        Hash function for datatype constructors.

                                                        @[extern datatypeConstructor_getName]

                                                        Get the name of this datatype constructor.

                                                        Get the name of this datatype constructor.

                                                        Equations
                                                        Instances For

                                                          Get the name of this datatype constructor.

                                                          Equations
                                                          Instances For
                                                            @[extern datatypeConstructor_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 can be constructor by tm.mkTerm Kind.APPLY_CONSTRUCTOR #[t], where tm is a TermManager and t is the term returned by this function.

                                                            This function should not be used for parametric datatypes. Instead, use the function DatatypeConstructor.getInstantiatedTerm.

                                                            @[extern datatypeConstructor_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).

                                                            The returned constructor term t is used to construct the above (nullary) application of nil with TermManager::mkTerm(Kind::APPLY_CONSTRUCTOR, {t}).

                                                            Warning: this function is experimental and may change in future versions.

                                                            • retSort The desired return sort of the constructor.
                                                            @[extern datatypeConstructor_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) which should be used as the first argument of terms of kind Kind.APPLY_TESTER.

                                                            @[extern datatypeConstructor_getNumSelectors]

                                                            The number of selectors of this datatype constructor.

                                                            @[extern datatypeConstructor_getSelector]

                                                            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.

                                                            • name The name of the datatype selector.
                                                            @[extern datatypeConstructor_getSelectorAt]

                                                            The datatype selector at index idx.

                                                            @[instance_reducible]
                                                            Equations
                                                            • One or more equations did not get rendered due to their size.
                                                            @[instance_reducible]
                                                            Equations
                                                            • One or more equations did not get rendered due to their size.
                                                            @[extern datatype_null]

                                                            The null datatype.

                                                            @[extern datatype_isNull]

                                                            True if this datatype is a null object.

                                                            @[extern datatype_beq]

                                                            Equality operator.

                                                            @[instance_reducible]
                                                            Equations
                                                            @[extern datatype_hash]

                                                            Hash function for datatypes.

                                                            @[extern datatype_getConstructor]

                                                            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.

                                                            • name The name of the datatype constructor.
                                                            @[extern datatype_getNumConstructors]

                                                            Get the number of constructors of this datatype.

                                                            @[extern datatype_getConstructorAt]

                                                            Get the datatype constructor at a given index.

                                                            • idx The index of the datatype constructor to return.
                                                            @[instance_reducible]
                                                            Equations
                                                            • One or more equations did not get rendered due to their size.
                                                            @[extern datatype_getSelector]

                                                            Get the datatype selector 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.

                                                            • name The name of the datatype selector.

                                                            Get the name of this datatype.

                                                            Equations
                                                            Instances For

                                                              Get the name of this datatype.

                                                              Equations
                                                              Instances For
                                                                @[extern datatype_getName]

                                                                Get the name of this datatype.

                                                                @[extern datatype_getParameters]

                                                                Get the parameters of this datatype, if it is parametric.

                                                                Asserts that this datatype is parametric.

                                                                Warning: this function is experimental and may change in future versions.

                                                                @[extern datatype_isParametric]

                                                                Determine if this datatype is parametric.

                                                                Warning: this function is experimental and may change in future versions.

                                                                @[extern datatype_isCodatatype]

                                                                Determine if this datatype corresponds to a co-datatype.

                                                                @[extern datatype_isTuple]

                                                                Determine if this datatype corresponds to a tuple.

                                                                @[extern datatype_isRecord]

                                                                Determine if this datatype corresponds to a record.

                                                                Warning: this function is experimental and may change in future versions.

                                                                @[extern datatype_isFinite]

                                                                Determine if this datatype is finite.

                                                                @[extern datatype_isWellFounded]

                                                                Determine if this datatype is well-founded.

                                                                If this datatype is not a codatatype, this returns false if thre are no values of this datatype that are of finite size.

                                                                @[extern sort_null]

                                                                The null sort.

                                                                @[instance_reducible]
                                                                Equations
                                                                @[extern sort_beq]

                                                                Comparison for structural equality.

                                                                @[instance_reducible]
                                                                Equations
                                                                @[extern sort_blt]

                                                                Less than comparison.

                                                                @[extern sort_bgt]

                                                                Greater than comparison.

                                                                @[extern sort_ble]

                                                                Less than or equal comparison.

                                                                @[extern sort_bge]

                                                                Greater than or equal comparison.

                                                                Comparison of two sorts.

                                                                Equations
                                                                Instances For
                                                                  @[instance_reducible]
                                                                  Equations
                                                                  @[instance_reducible]
                                                                  Equations
                                                                  @[instance_reducible]
                                                                  Equations
                                                                  @[instance_reducible]
                                                                  Equations
                                                                  @[instance_reducible]
                                                                  Equations
                                                                  @[extern sort_hash]

                                                                  Hash function for cvc5 sorts.

                                                                  Get the kind of this sort.

                                                                  Equations
                                                                  Instances For

                                                                    Get the kind of this sort.

                                                                    Equations
                                                                    Instances For
                                                                      @[extern sort_getKind]

                                                                      Get the kind of this sort.

                                                                      @[extern sort_isNull]

                                                                      Determine if this is the null sort (cvc5.Sort).

                                                                      @[extern sort_isBoolean]

                                                                      Determine if this is the Boolean sort (SMT-LIB: Bool).

                                                                      @[extern sort_isInteger]

                                                                      Determine if this is the Integer sort (SMT-LIB: Int).

                                                                      @[extern sort_isReal]

                                                                      Determine if this is the Real sort (SMT-LIB: Real).

                                                                      @[extern sort_isString]

                                                                      Determine if this is the String sort (SMT-LIB: String).

                                                                      @[extern sort_isRegExp]

                                                                      Determine if this is the regular expression sort (SMT-LIB: RegLan).

                                                                      @[extern sort_isRoundingMode]

                                                                      Determine if this is the rounding mode sort (SMT-LIB: RoundingMode).

                                                                      @[extern sort_isBitVector]

                                                                      Determine if this is a bit-vector sort (SMT-LIB: (_ BitVec i)).

                                                                      @[extern sort_isFloatingPoint]

                                                                      Determine if this is a floating-point sort (SMT-LIB: (_ FloatingPoint eb sb)).

                                                                      @[extern sort_isDatatype]

                                                                      Determine if this is a datatype sort.

                                                                      @[extern sort_isDatatypeConstructor]

                                                                      Determine if this is a datatype constructor sort.

                                                                      @[extern sort_isDatatypeSelector]

                                                                      Determine if this is a datatype selector sort.

                                                                      @[extern sort_isDatatypeTester]

                                                                      Determine if this is a datatype tester sort.

                                                                      @[extern sort_isDatatypeUpdater]

                                                                      Determine if this is a datatype updater sort.

                                                                      @[extern sort_isFunction]

                                                                      Determine if this is a function sort.

                                                                      @[extern 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.

                                                                      @[extern sort_isTuple]

                                                                      Determine if this is a tuple sort.

                                                                      @[extern sort_isNullable]

                                                                      Determine if this is a nullable sort.

                                                                      @[extern sort_isRecord]

                                                                      Determine if this is a record sort.

                                                                      Warning: this function is experimental and may change in future versions.

                                                                      @[extern sort_isArray]

                                                                      Determine if this is an array sort.

                                                                      @[extern sort_isFiniteField]

                                                                      Determine if this is a finite field sort.

                                                                      @[extern sort_isSet]

                                                                      Determine if this is a Set sort.

                                                                      @[extern sort_isBag]

                                                                      Determine if this is a Bag sort.

                                                                      @[extern sort_isSequence]

                                                                      Determine if this is a Sequence sort.

                                                                      @[extern sort_isAbstract]

                                                                      Determine if this is an abstract sort.

                                                                      @[extern sort_isUninterpretedSort]

                                                                      Determine if this is an uninterpreted sort.

                                                                      @[extern sort_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.

                                                                      @[extern 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 with sort arguments --- see also cvc5.Sort.instantiate.

                                                                      @[extern sort_toString]

                                                                      A string representation of this sort.

                                                                      @[instance_reducible]
                                                                      Equations
                                                                      @[instance_reducible]
                                                                      Equations

                                                                      Determine if this term has a symbol (a name).

                                                                      For example, free constants and variables have symbols.

                                                                      Equations
                                                                      Instances For
                                                                        @[extern sort_hasSymbol]

                                                                        Determine if this term has a symbol (a name).

                                                                        For example, free constants and variables have symbols.

                                                                        Determine if this term has a symbol (a name).

                                                                        For example, free constants and variables have symbols.

                                                                        Equations
                                                                        Instances For

                                                                          Get the symbol of this sort.

                                                                          The symbol of this sort is the string that was provided when consrtucting it via one of Solver.mkUninterpretedSort, Solver.mkUnresolvedSort, or Solver.mkUninterpretedSortConstructorSort.

                                                                          Equations
                                                                          Instances For
                                                                            @[extern sort_getSymbol]

                                                                            Get the symbol of this sort.

                                                                            The symbol of this sort is the string that was provided when consrtucting it via one of Solver.mkUninterpretedSort, Solver.mkUnresolvedSort, or Solver.mkUninterpretedSortConstructorSort.

                                                                            Get the symbol of this sort.

                                                                            The symbol of this sort is the string that was provided when consrtucting it via one of Solver.mkUninterpretedSort, Solver.mkUnresolvedSort, or Solver.mkUninterpretedSortConstructorSort.

                                                                            Equations
                                                                            Instances For

                                                                              The arity of a function sort.

                                                                              Equations
                                                                              Instances For

                                                                                The arity of a function sort.

                                                                                Equations
                                                                                Instances For
                                                                                  @[extern sort_getFunctionArity]

                                                                                  The arity of a function sort.

                                                                                  The domain sorts of a function sort.

                                                                                  Equations
                                                                                  Instances For
                                                                                    @[extern sort_getFunctionDomainSorts]

                                                                                    The domain sorts of a function sort.

                                                                                    The codomain sort of a function sort.

                                                                                    Equations
                                                                                    Instances For

                                                                                      The codomain sort of a function sort.

                                                                                      Equations
                                                                                      Instances For
                                                                                        @[extern sort_getFunctionCodomainSort]

                                                                                        The codomain sort of a function sort.

                                                                                        The array index sort of an array index.

                                                                                        Equations
                                                                                        Instances For

                                                                                          The array index sort of an array index.

                                                                                          Equations
                                                                                          Instances For
                                                                                            @[extern sort_getArrayIndexSort]

                                                                                            The array index sort of an array index.

                                                                                            The array element sort of an array index.

                                                                                            Equations
                                                                                            Instances For
                                                                                              @[extern sort_getArrayElementSort]

                                                                                              The array element sort of an array index.

                                                                                              The array element sort of an array index.

                                                                                              Equations
                                                                                              Instances For

                                                                                                The element sort of a set sort.

                                                                                                Equations
                                                                                                Instances For

                                                                                                  The element sort of a set sort.

                                                                                                  Equations
                                                                                                  Instances For
                                                                                                    @[extern sort_getSetElementSort]

                                                                                                    The element sort of a set sort.

                                                                                                    The element sort of a bag sort.

                                                                                                    Equations
                                                                                                    Instances For

                                                                                                      The element sort of a bag sort.

                                                                                                      Equations
                                                                                                      Instances For
                                                                                                        @[extern sort_getBagElementSort]

                                                                                                        The element sort of a bag sort.

                                                                                                        The element sort of a sequence sort.

                                                                                                        Equations
                                                                                                        Instances For
                                                                                                          @[extern sort_getSequenceElementSort]

                                                                                                          The element sort of a sequence sort.

                                                                                                          The element sort of a sequence sort.

                                                                                                          Equations
                                                                                                          Instances For

                                                                                                            The sort kind of an abstract sort, which denotes the kind of sorts that this abstract sort denotes.

                                                                                                            Equations
                                                                                                            Instances For
                                                                                                              @[extern sort_getAbstractedKind]

                                                                                                              The sort kind of an abstract sort, which denotes the kind of sorts that this abstract sort denotes.

                                                                                                              The sort kind of an abstract sort, which denotes the kind of sorts that this abstract sort denotes.

                                                                                                              Equations
                                                                                                              Instances For
                                                                                                                @[extern sort_getUninterpretedSortConstructorArity]

                                                                                                                The arity of an uninterpreted sort constructor sort.

                                                                                                                @[extern sort_getBitVectorSize]

                                                                                                                The bit-width of the bit-vector sort.

                                                                                                                The bit-width of the bit-vector sort.

                                                                                                                Equations
                                                                                                                Instances For

                                                                                                                  The bit-width of the bit-vector sort.

                                                                                                                  Equations
                                                                                                                  Instances For

                                                                                                                    The size of the finite field sort.

                                                                                                                    Equations
                                                                                                                    Instances For

                                                                                                                      The size of the finite field sort.

                                                                                                                      Equations
                                                                                                                      Instances For
                                                                                                                        @[extern sort_getFiniteFieldSize]

                                                                                                                        The size of the finite field sort.

                                                                                                                        The bit-width of the exponent of the floating-point sort.

                                                                                                                        Equations
                                                                                                                        Instances For

                                                                                                                          The bit-width of the exponent of the floating-point sort.

                                                                                                                          Equations
                                                                                                                          Instances For
                                                                                                                            @[extern sort_getFloatingPointExponentSize]

                                                                                                                            The bit-width of the exponent of the floating-point sort.

                                                                                                                            The width of the significand of the floating-point sort.

                                                                                                                            Equations
                                                                                                                            Instances For

                                                                                                                              The width of the significand of the floating-point sort.

                                                                                                                              Equations
                                                                                                                              Instances For
                                                                                                                                @[extern sort_getFloatingPointSignificandSize]

                                                                                                                                The width of the significand of the floating-point sort.

                                                                                                                                The length of a tuple sort.

                                                                                                                                Equations
                                                                                                                                Instances For

                                                                                                                                  The length of a tuple sort.

                                                                                                                                  Equations
                                                                                                                                  Instances For
                                                                                                                                    @[extern sort_getTupleLength]

                                                                                                                                    The length of a tuple sort.

                                                                                                                                    @[extern sort_getTupleSorts]

                                                                                                                                    The element sorts of a tuple sort.

                                                                                                                                    The element sorts of a tuple sort.

                                                                                                                                    Equations
                                                                                                                                    Instances For

                                                                                                                                      The element sorts of a tuple sort.

                                                                                                                                      Equations
                                                                                                                                      Instances For
                                                                                                                                        @[extern sort_getNullableElementSort]

                                                                                                                                        The element sort of a nullable sort.

                                                                                                                                        The element sort of a nullable sort.

                                                                                                                                        Equations
                                                                                                                                        Instances For

                                                                                                                                          The element sort of a nullable sort.

                                                                                                                                          Equations
                                                                                                                                          Instances For

                                                                                                                                            Get the associated uninterpreted sort constructor of an instantiated uninterpreted sort.

                                                                                                                                            Equations
                                                                                                                                            Instances For
                                                                                                                                              @[extern sort_getUninterpretedSortConstructor]

                                                                                                                                              Get the associated uninterpreted sort constructor of an instantiated uninterpreted sort.

                                                                                                                                              Get the associated uninterpreted sort constructor of an instantiated uninterpreted sort.

                                                                                                                                              Equations
                                                                                                                                              Instances For
                                                                                                                                                @[extern sort_getDatatype]

                                                                                                                                                Get the underlying datatype of a datatype sort.

                                                                                                                                                Get the underlying datatype of a datatype sort.

                                                                                                                                                Equations
                                                                                                                                                Instances For

                                                                                                                                                  Get the underlying datatype of a datatype sort.

                                                                                                                                                  Equations
                                                                                                                                                  Instances For

                                                                                                                                                    Get the sorts used to instantiate the sort parameters of a parametric sort.

                                                                                                                                                    A parametric sort is a parametric datatype or an uninterpreted sort constructor sort. See cvc5.Sort.instantiate.

                                                                                                                                                    Equations
                                                                                                                                                    Instances For

                                                                                                                                                      Get the sorts used to instantiate the sort parameters of a parametric sort.

                                                                                                                                                      A parametric sort is a parametric datatype or an uninterpreted sort constructor sort. See cvc5.Sort.instantiate.

                                                                                                                                                      Equations
                                                                                                                                                      Instances For
                                                                                                                                                        @[extern sort_getInstantiatedParameters]

                                                                                                                                                        Get the sorts used to instantiate the sort parameters of a parametric sort.

                                                                                                                                                        A parametric sort is a parametric datatype or an uninterpreted sort constructor sort. See cvc5.Sort.instantiate.

                                                                                                                                                        @[extern sort_instantiate]

                                                                                                                                                        Instantiate a parameterized datatype sort or uninterpreted sort constructor sort.

                                                                                                                                                        Create sort parameters with mkParamSort symbol.

                                                                                                                                                        • params The list of sort parameters to instantiate with.

                                                                                                                                                        Instantiate a parameterized datatype sort or uninterpreted sort constructor sort.

                                                                                                                                                        Create sort parameters with mkParamSort symbol.

                                                                                                                                                        • params The list of sort parameters to instantiate with.
                                                                                                                                                        Equations
                                                                                                                                                        Instances For

                                                                                                                                                          Instantiate a parameterized datatype sort or uninterpreted sort constructor sort.

                                                                                                                                                          Create sort parameters with mkParamSort symbol.

                                                                                                                                                          • params The list of sort parameters to instantiate with.
                                                                                                                                                          Equations
                                                                                                                                                          Instances For

                                                                                                                                                            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.

                                                                                                                                                            • sorts The sub-sorts to be substituted within this sort.
                                                                                                                                                            • replacements The sort replacing the substituted sub-sorts.
                                                                                                                                                            Equations
                                                                                                                                                            Instances For
                                                                                                                                                              @[extern sort_substitute]
                                                                                                                                                              opaque cvc5.Sort.substitute :
                                                                                                                                                              «Sort» → (sorts replacements : Array «Sort») → Except Error «Sort»

                                                                                                                                                              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.

                                                                                                                                                              • sorts The sub-sorts to be substituted within this sort.
                                                                                                                                                              • replacements The sort replacing the substituted sub-sorts.

                                                                                                                                                              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.

                                                                                                                                                              • sorts The sub-sorts to be substituted within this sort.
                                                                                                                                                              • replacements The sort replacing the substituted sub-sorts.
                                                                                                                                                              Equations
                                                                                                                                                              Instances For

                                                                                                                                                                The arity of a datatype constructor sort.

                                                                                                                                                                Equations
                                                                                                                                                                Instances For

                                                                                                                                                                  The arity of a datatype constructor sort.

                                                                                                                                                                  Equations
                                                                                                                                                                  Instances For
                                                                                                                                                                    @[extern sort_getDatatypeConstructorArity]

                                                                                                                                                                    The arity of a datatype constructor sort.

                                                                                                                                                                    @[extern sort_getDatatypeConstructorDomainSorts]

                                                                                                                                                                    The domain sorts of a datatype constructor sort.

                                                                                                                                                                    @[extern sort_getDatatypeConstructorCodomainSort]

                                                                                                                                                                    The codomain sort of a constructor sort.

                                                                                                                                                                    @[extern sort_getDatatypeSelectorDomainSort]

                                                                                                                                                                    The domain sort of a datatype selector sort.

                                                                                                                                                                    @[extern sort_getDatatypeSelectorCodomainSort]

                                                                                                                                                                    The codomain sort of a datatype selector sort.

                                                                                                                                                                    The domain sort of a datatype tester sort.

                                                                                                                                                                    Equations
                                                                                                                                                                    Instances For
                                                                                                                                                                      @[extern sort_getDatatypeTesterDomainSort]

                                                                                                                                                                      The domain sort of a datatype tester sort.

                                                                                                                                                                      @[extern sort_getDatatypeTesterCodomainSort]

                                                                                                                                                                      The codomain sort of a datatype tester sort.

                                                                                                                                                                      Get the arity of a datatype sort.

                                                                                                                                                                      Number of type parameters if the datatype is parametric, 0 otherwise.

                                                                                                                                                                      Equations
                                                                                                                                                                      Instances For

                                                                                                                                                                        Get the arity of a datatype sort.

                                                                                                                                                                        Number of type parameters if the datatype is parametric, 0 otherwise.

                                                                                                                                                                        Equations
                                                                                                                                                                        Instances For
                                                                                                                                                                          @[extern sort_getDatatypeArity]

                                                                                                                                                                          Get the arity of a datatype sort.

                                                                                                                                                                          Number of type parameters if the datatype is parametric, 0 otherwise.

                                                                                                                                                                          @[extern op_null]
                                                                                                                                                                          opaque cvc5.Op.null :
                                                                                                                                                                          Unit → Op

                                                                                                                                                                          The null operator.

                                                                                                                                                                          @[instance_reducible]
                                                                                                                                                                          Equations
                                                                                                                                                                          @[extern op_hash]
                                                                                                                                                                          opaque cvc5.Op.hash :

                                                                                                                                                                          Hash function.

                                                                                                                                                                          @[instance_reducible]
                                                                                                                                                                          Equations
                                                                                                                                                                          @[extern op_beq]
                                                                                                                                                                          opaque cvc5.Op.beq :
                                                                                                                                                                          Op → Op → Bool

                                                                                                                                                                          Syntactic equality operator.

                                                                                                                                                                          @[instance_reducible]
                                                                                                                                                                          Equations
                                                                                                                                                                          @[extern op_getKind]
                                                                                                                                                                          opaque cvc5.Op.getKind :
                                                                                                                                                                          Op → Kind

                                                                                                                                                                          Get the kind of this operator.

                                                                                                                                                                          @[extern op_isNull]
                                                                                                                                                                          opaque cvc5.Op.isNull :
                                                                                                                                                                          Op → Bool

                                                                                                                                                                          Determine if this operator is nullary.

                                                                                                                                                                          @[extern op_isIndexed]

                                                                                                                                                                          Determine if this operator is indexed.

                                                                                                                                                                          @[extern op_getNumIndices]

                                                                                                                                                                          Get the number of indices of this operator.

                                                                                                                                                                          @[extern op_get]
                                                                                                                                                                          opaque cvc5.Op.get (op : Op) :

                                                                                                                                                                          Get the index at position i of an indexed operator.

                                                                                                                                                                          @[extern op_toString]

                                                                                                                                                                          Get the string representation of this operator.

                                                                                                                                                                          @[instance_reducible]
                                                                                                                                                                          Equations
                                                                                                                                                                          @[instance_reducible]
                                                                                                                                                                          Equations
                                                                                                                                                                          @[extern term_null]

                                                                                                                                                                          The null term.

                                                                                                                                                                          @[instance_reducible]
                                                                                                                                                                          Equations
                                                                                                                                                                          @[extern term_beq]
                                                                                                                                                                          opaque cvc5.Term.beq :
                                                                                                                                                                          Term → Term → Bool

                                                                                                                                                                          Syntactic equality operator.

                                                                                                                                                                          @[instance_reducible]
                                                                                                                                                                          Equations
                                                                                                                                                                          @[extern term_blt]
                                                                                                                                                                          opaque cvc5.Term.blt :
                                                                                                                                                                          Term → Term → Bool

                                                                                                                                                                          Less than comparison.

                                                                                                                                                                          @[extern term_bgt]
                                                                                                                                                                          opaque cvc5.Term.bgt :
                                                                                                                                                                          Term → Term → Bool

                                                                                                                                                                          Greater than comparison.

                                                                                                                                                                          @[extern term_ble]
                                                                                                                                                                          opaque cvc5.Term.ble :
                                                                                                                                                                          Term → Term → Bool

                                                                                                                                                                          Less than or equal comparison.

                                                                                                                                                                          @[extern term_bge]
                                                                                                                                                                          opaque cvc5.Term.bge :
                                                                                                                                                                          Term → Term → Bool

                                                                                                                                                                          Greater than or equal comparison.

                                                                                                                                                                          Comparison of two terms.

                                                                                                                                                                          Equations
                                                                                                                                                                          Instances For
                                                                                                                                                                            @[instance_reducible]
                                                                                                                                                                            Equations
                                                                                                                                                                            @[instance_reducible]
                                                                                                                                                                            Equations
                                                                                                                                                                            @[instance_reducible]
                                                                                                                                                                            Equations
                                                                                                                                                                            @[instance_reducible]
                                                                                                                                                                            Equations
                                                                                                                                                                            @[instance_reducible]
                                                                                                                                                                            Equations
                                                                                                                                                                            @[extern term_hash]

                                                                                                                                                                            Hash function for terms.

                                                                                                                                                                            @[instance_reducible]
                                                                                                                                                                            Equations
                                                                                                                                                                            @[extern term_isNull]

                                                                                                                                                                            Determine if this term is nullary.

                                                                                                                                                                            Get the kind of this term.

                                                                                                                                                                            Equations
                                                                                                                                                                            Instances For
                                                                                                                                                                              @[extern term_getKind]

                                                                                                                                                                              Get the kind of this term.

                                                                                                                                                                              Get the kind of this term.

                                                                                                                                                                              Equations
                                                                                                                                                                              Instances For

                                                                                                                                                                                Get the sort of this term.

                                                                                                                                                                                Equations
                                                                                                                                                                                Instances For

                                                                                                                                                                                  Get the sort of this term.

                                                                                                                                                                                  Equations
                                                                                                                                                                                  Instances For
                                                                                                                                                                                    @[extern term_getSort]

                                                                                                                                                                                    Get the sort of this term.

                                                                                                                                                                                    @[extern term_substitute]
                                                                                                                                                                                    opaque cvc5.Term.substitute (term : Term) (terms replacements : Array Term) :

                                                                                                                                                                                    Simultaneously replace terms with replacements in term.

                                                                                                                                                                                    • terms: The terms to replace.
                                                                                                                                                                                    • replacements: The replacement terms.

                                                                                                                                                                                    In the case that terms contains duplicates, the replacement earliest in the array 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).

                                                                                                                                                                                    NB: requires that terms and replacements are of equal size (they are interpreted as a 1:1 mapping).

                                                                                                                                                                                    NB: this replacement is applied during a pre-order traversal and only once (it is not run until fixed point).

                                                                                                                                                                                    @[extern term_hasOp]

                                                                                                                                                                                    Determine if this term has an operator.

                                                                                                                                                                                    Determine if this term has a symbol (a name).

                                                                                                                                                                                    For example, free constants and variables have symbols.

                                                                                                                                                                                    Equations
                                                                                                                                                                                    Instances For

                                                                                                                                                                                      Determine if this term has a symbol (a name).

                                                                                                                                                                                      For example, free constants and variables have symbols.

                                                                                                                                                                                      Equations
                                                                                                                                                                                      Instances For
                                                                                                                                                                                        @[extern term_hasSymbol]

                                                                                                                                                                                        Determine if this term has a symbol (a name).

                                                                                                                                                                                        For example, free constants and variables have symbols.

                                                                                                                                                                                        @[extern term_getId]

                                                                                                                                                                                        Get the id of this term.

                                                                                                                                                                                        Get the id of this term.

                                                                                                                                                                                        Equations
                                                                                                                                                                                        Instances For

                                                                                                                                                                                          Get the id of this term.

                                                                                                                                                                                          Equations
                                                                                                                                                                                          Instances For

                                                                                                                                                                                            Get the number of children of this term.

                                                                                                                                                                                            Equations
                                                                                                                                                                                            Instances For
                                                                                                                                                                                              @[extern term_isSkolem]

                                                                                                                                                                                              Is this term a skolem?

                                                                                                                                                                                              @[extern term_get]

                                                                                                                                                                                              Get the child term of this term at a given index.

                                                                                                                                                                                              Get the operator of a term with an operator.

                                                                                                                                                                                              Requires that this term has an operator (see hasOp).

                                                                                                                                                                                              Equations
                                                                                                                                                                                              Instances For
                                                                                                                                                                                                @[extern term_getOp]

                                                                                                                                                                                                Get the operator of a term with an operator.

                                                                                                                                                                                                Requires that this term has an operator (see hasOp).

                                                                                                                                                                                                Get the operator of a term with an operator.

                                                                                                                                                                                                Requires that this term has an operator (see hasOp).

                                                                                                                                                                                                Equations
                                                                                                                                                                                                Instances For

                                                                                                                                                                                                  Get the symbol of this term.

                                                                                                                                                                                                  Requires that this term has a symbol (see hasSymbol).

                                                                                                                                                                                                  The symbol of the term is the string that was provided when constructing it via mkConst or mkVar.

                                                                                                                                                                                                  Equations
                                                                                                                                                                                                  Instances For

                                                                                                                                                                                                    Get the symbol of this term.

                                                                                                                                                                                                    Requires that this term has a symbol (see hasSymbol).

                                                                                                                                                                                                    The symbol of the term is the string that was provided when constructing it via mkConst or mkVar.

                                                                                                                                                                                                    Equations
                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                      @[extern term_getSymbol]

                                                                                                                                                                                                      Get the symbol of this term.

                                                                                                                                                                                                      Requires that this term has a symbol (see hasSymbol).

                                                                                                                                                                                                      The symbol of the term is the string that was provided when constructing it via mkConst or mkVar.

                                                                                                                                                                                                      @[extern term_notTerm]

                                                                                                                                                                                                      Boolean negation.

                                                                                                                                                                                                      @[extern term_andTerm]
                                                                                                                                                                                                      opaque cvc5.Term.andTerm (t1 t2 : Term) :

                                                                                                                                                                                                      Boolean and.

                                                                                                                                                                                                      • t1: A Boolean term.
                                                                                                                                                                                                      • t2: A Boolean term.
                                                                                                                                                                                                      @[extern term_orTerm]
                                                                                                                                                                                                      opaque cvc5.Term.orTerm (t1 t2 : Term) :

                                                                                                                                                                                                      Boolean or.

                                                                                                                                                                                                      • t1: A Boolean term.
                                                                                                                                                                                                      • t2: A Boolean term.
                                                                                                                                                                                                      @[extern term_xorTerm]
                                                                                                                                                                                                      opaque cvc5.Term.xorTerm (t1 t2 : Term) :

                                                                                                                                                                                                      Boolean exclusive or.

                                                                                                                                                                                                      • t1: A Boolean term.
                                                                                                                                                                                                      • t2: A Boolean term.
                                                                                                                                                                                                      @[extern term_eqTerm]
                                                                                                                                                                                                      opaque cvc5.Term.eqTerm (t1 t2 : Term) :

                                                                                                                                                                                                      Equality.

                                                                                                                                                                                                      @[extern term_impTerm]
                                                                                                                                                                                                      opaque cvc5.Term.impTerm (t1 t2 : Term) :

                                                                                                                                                                                                      Boolean implication.

                                                                                                                                                                                                      • t1: A Boolean term.
                                                                                                                                                                                                      • t2: A Boolean term.
                                                                                                                                                                                                      @[extern term_iteTerm]
                                                                                                                                                                                                      opaque cvc5.Term.iteTerm (cnd thn els : Term) :

                                                                                                                                                                                                      If-then-else.

                                                                                                                                                                                                      • cnd: The condition, a Boolean term.
                                                                                                                                                                                                      • thn: The then term.
                                                                                                                                                                                                      • els: The else term.

                                                                                                                                                                                                      Get the sign of an integer or real value.

                                                                                                                                                                                                      Returns 0 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.

                                                                                                                                                                                                      NB: requires that this term is an integer or real value.

                                                                                                                                                                                                      Equations
                                                                                                                                                                                                      Instances For

                                                                                                                                                                                                        Get the sign of an integer or real value.

                                                                                                                                                                                                        Returns 0 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.

                                                                                                                                                                                                        NB: requires that this term is an integer or real value.

                                                                                                                                                                                                        Equations
                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                          @[extern term_getRealOrIntegerValueSign]

                                                                                                                                                                                                          Get the sign of an integer or real value.

                                                                                                                                                                                                          Returns 0 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.

                                                                                                                                                                                                          NB: requires that this term is an integer or real value.

                                                                                                                                                                                                          @[extern term_isInt32Value]

                                                                                                                                                                                                          Determine if this term is an Int32 value.

                                                                                                                                                                                                          NB: this will return true for integer constants and real constants that have integer value.

                                                                                                                                                                                                          Get the Int32 representation of this integral value.

                                                                                                                                                                                                          NB: requires that this term is an Int32 value (see isInt32Value).

                                                                                                                                                                                                          Equations
                                                                                                                                                                                                          Instances For
                                                                                                                                                                                                            @[extern term_getInt32Value]

                                                                                                                                                                                                            Get the Int32 representation of this integral value.

                                                                                                                                                                                                            NB: requires that this term is an Int32 value (see isInt32Value).

                                                                                                                                                                                                            Get the Int32 representation of this integral value.

                                                                                                                                                                                                            NB: requires that this term is an Int32 value (see isInt32Value).

                                                                                                                                                                                                            Equations
                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                              @[extern term_isUInt32Value]

                                                                                                                                                                                                              Determine if this term is an UInt32 value.

                                                                                                                                                                                                              NB: this will return true for integer constants and real constants that have integer value.

                                                                                                                                                                                                              @[extern term_getUInt32Value]

                                                                                                                                                                                                              Get the UInt32 representation of this integral value.

                                                                                                                                                                                                              NB: requires that this term is an UInt32 value (see isUInt32Value).

                                                                                                                                                                                                              Get the UInt32 representation of this integral value.

                                                                                                                                                                                                              NB: requires that this term is an UInt32 value (see isUInt32Value).

                                                                                                                                                                                                              Equations
                                                                                                                                                                                                              Instances For

                                                                                                                                                                                                                Get the UInt32 representation of this integral value.

                                                                                                                                                                                                                NB: requires that this term is an UInt32 value (see isUInt32Value).

                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                  @[extern term_isInt64Value]

                                                                                                                                                                                                                  Determine if this term is an Int64 value.

                                                                                                                                                                                                                  NB: this will return true for integer constants and real constants that have integer value.

                                                                                                                                                                                                                  Get the Int64 representation of this integral value.

                                                                                                                                                                                                                  NB: requires that this term is an Int64 value (see isInt64Value).

                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                    @[extern term_getInt64Value]

                                                                                                                                                                                                                    Get the Int64 representation of this integral value.

                                                                                                                                                                                                                    NB: requires that this term is an Int64 value (see isInt64Value).

                                                                                                                                                                                                                    Get the Int64 representation of this integral value.

                                                                                                                                                                                                                    NB: requires that this term is an Int64 value (see isInt64Value).

                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                      @[extern term_isUInt64Value]

                                                                                                                                                                                                                      Determine if this term is an UInt64 value.

                                                                                                                                                                                                                      NB: this will return true for integer constants and real constants that have integer value.

                                                                                                                                                                                                                      @[extern term_getUInt64Value]

                                                                                                                                                                                                                      Get the UInt64 representation of this integral value.

                                                                                                                                                                                                                      NB: requires that this term is an UInt64 value (see isUInt64Value).

                                                                                                                                                                                                                      Get the UInt64 representation of this integral value.

                                                                                                                                                                                                                      NB: requires that this term is an UInt64 value (see isUInt64Value).

                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                      Instances For

                                                                                                                                                                                                                        Get the UInt64 representation of this integral value.

                                                                                                                                                                                                                        NB: requires that this term is an UInt64 value (see isUInt64Value).

                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                          @[extern term_isIntegerValue]

                                                                                                                                                                                                                          Determine if this real/integer constant term is an integral value.

                                                                                                                                                                                                                          Get the native integral value of an integral value.

                                                                                                                                                                                                                          Equations
                                                                                                                                                                                                                          Instances For
                                                                                                                                                                                                                            @[extern term_getIntegerValue]

                                                                                                                                                                                                                            Get the native integral value of an integral value.

                                                                                                                                                                                                                            Get the native integral value of an integral value.

                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                              @[extern term_isStringValue]

                                                                                                                                                                                                                              Get the native integral value of an integral value.

                                                                                                                                                                                                                              @[extern term_isReal32Value]

                                                                                                                                                                                                                              Determine if this term is a rational value whose numerator fits into an Int32 value and its denominator fits into a UInt32 value.

                                                                                                                                                                                                                              @[extern term_getReal32Value]

                                                                                                                                                                                                                              Get the 32 bit integer representations of the numerator and denominator of a rational value.

                                                                                                                                                                                                                              NB: Requires that this term is a rational value and its numerator and denominator fit into 32 bit integer values (see Term.isReal32Value).

                                                                                                                                                                                                                              @[extern term_isReal64Value]

                                                                                                                                                                                                                              Determine if this term is a rational value whose numerator fits into an Int64 value and its denominator fits into a UInt64 value.

                                                                                                                                                                                                                              @[extern term_getReal64Value]

                                                                                                                                                                                                                              Get the 64 bit integer representations of the numerator and denominator of a rational value.

                                                                                                                                                                                                                              NB: Requires that this term is a rational value and its numerator and denominator fit into 64 bit integer values (see Term.isReal64Value).

                                                                                                                                                                                                                              @[extern term_isRealValue]

                                                                                                                                                                                                                              Determine if this term is a rational value.

                                                                                                                                                                                                                              NB: A term of kind Kind.PI is not considered to be a real value.

                                                                                                                                                                                                                              @[extern term_getRealValue]

                                                                                                                                                                                                                              Get a string representation of this rational value.

                                                                                                                                                                                                                              NB: Requires that this term is a rational value (see Term.isRealValue).

                                                                                                                                                                                                                              Get a string representation of this rational value.

                                                                                                                                                                                                                              NB: Requires that this term is a rational value (see Term.isRealValue).

                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                              Instances For

                                                                                                                                                                                                                                Get a string representation of this rational value.

                                                                                                                                                                                                                                NB: Requires that this term is a rational value (see Term.isRealValue).

                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                  @[extern term_getRationalValue]

                                                                                                                                                                                                                                  Get the native rational value of a real, rational-compatible value.

                                                                                                                                                                                                                                  Get the native rational value of a real, rational-compatible value.

                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                  Instances For

                                                                                                                                                                                                                                    Get the native rational value of a real, rational-compatible value.

                                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                                      @[extern term_isConstArray]

                                                                                                                                                                                                                                      Determine if this term is a constant array.

                                                                                                                                                                                                                                      Determine the base (element stored at all indices) of a constant array.

                                                                                                                                                                                                                                      NB: requires that this term is a constant array (see isConstArray).

                                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                                                        @[extern term_getConstArrayBase]

                                                                                                                                                                                                                                        Determine the base (element stored at all indices) of a constant array.

                                                                                                                                                                                                                                        NB: requires that this term is a constant array (see isConstArray).

                                                                                                                                                                                                                                        Determine the base (element stored at all indices) of a constant array.

                                                                                                                                                                                                                                        NB: requires that this term is a constant array (see isConstArray).

                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                                          @[extern term_isBooleanValue]

                                                                                                                                                                                                                                          Determine if this term is a Boolean value.

                                                                                                                                                                                                                                          Get the value of a Boolean term as a native Boolean value.

                                                                                                                                                                                                                                          Requires term to have sort Bool.

                                                                                                                                                                                                                                          Equations
                                                                                                                                                                                                                                          Instances For

                                                                                                                                                                                                                                            Get the value of a Boolean term as a native Boolean value.

                                                                                                                                                                                                                                            Requires term to have sort Bool.

                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                                              @[extern term_getBooleanValue]

                                                                                                                                                                                                                                              Get the value of a Boolean term as a native Boolean value.

                                                                                                                                                                                                                                              Requires term to have sort Bool.

                                                                                                                                                                                                                                              @[extern term_isBitVectorValue]

                                                                                                                                                                                                                                              Determine if this term is a bit-vector value.

                                                                                                                                                                                                                                              Get the string representation of a bit-vector value.

                                                                                                                                                                                                                                              Requires term to have a bit-vector sort.

                                                                                                                                                                                                                                              • base: 2 for binary, 10 for decimal, and 16 for hexadecimal.
                                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                                                @[extern term_getBitVectorValue]

                                                                                                                                                                                                                                                Get the string representation of a bit-vector value.

                                                                                                                                                                                                                                                Requires term to have a bit-vector sort.

                                                                                                                                                                                                                                                • base: 2 for binary, 10 for decimal, and 16 for hexadecimal.

                                                                                                                                                                                                                                                Get the string representation of a bit-vector value.

                                                                                                                                                                                                                                                Requires term to have a bit-vector sort.

                                                                                                                                                                                                                                                • base: 2 for binary, 10 for decimal, and 16 for hexadecimal.
                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                                  @[extern term_isFiniteFieldValue]

                                                                                                                                                                                                                                                  Determine if this term is a finite field value.

                                                                                                                                                                                                                                                  Get the integer representation of a finite field value (base 10).

                                                                                                                                                                                                                                                  NB: asserts isFiniteFieldValue.

                                                                                                                                                                                                                                                  NB: uses the integer representative of smallest absolute value.

                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                  Instances For

                                                                                                                                                                                                                                                    Get the integer representation of a finite field value (base 10).

                                                                                                                                                                                                                                                    NB: asserts isFiniteFieldValue.

                                                                                                                                                                                                                                                    NB: uses the integer representative of smallest absolute value.

                                                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                                                      @[extern term_getFiniteFieldValue]

                                                                                                                                                                                                                                                      Get the integer representation of a finite field value (base 10).

                                                                                                                                                                                                                                                      NB: asserts isFiniteFieldValue.

                                                                                                                                                                                                                                                      NB: uses the integer representative of smallest absolute value.

                                                                                                                                                                                                                                                      @[extern term_isUninterpretedSortValue]

                                                                                                                                                                                                                                                      Determine if this term is an uninterpreted sort value.

                                                                                                                                                                                                                                                      Get a string representation of an uninterpreted sort value.

                                                                                                                                                                                                                                                      NB: asserts isUninterpretedSortValue.

                                                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                                                                        @[extern term_getUninterpretedSortValue]

                                                                                                                                                                                                                                                        Get a string representation of an uninterpreted sort value.

                                                                                                                                                                                                                                                        NB: asserts isUninterpretedSortValue.

                                                                                                                                                                                                                                                        Get a string representation of an uninterpreted sort value.

                                                                                                                                                                                                                                                        NB: asserts isUninterpretedSortValue.

                                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                                                          @[extern term_isTupleValue]

                                                                                                                                                                                                                                                          Determine if this term is a tuple value.

                                                                                                                                                                                                                                                          Get a tuple value as a vector of terms.

                                                                                                                                                                                                                                                          NB: asserts isTupleValue.

                                                                                                                                                                                                                                                          Equations
                                                                                                                                                                                                                                                          Instances For

                                                                                                                                                                                                                                                            Get a tuple value as a vector of terms.

                                                                                                                                                                                                                                                            NB: asserts isTupleValue.

                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                                                              @[extern term_getTupleValue]

                                                                                                                                                                                                                                                              Get a tuple value as a vector of terms.

                                                                                                                                                                                                                                                              NB: asserts isTupleValue.

                                                                                                                                                                                                                                                              @[extern term_isRoundingModeValue]

                                                                                                                                                                                                                                                              Determine if this term is a floating-point rounding mode value.

                                                                                                                                                                                                                                                              @[extern term_getRoundingModeValue]

                                                                                                                                                                                                                                                              Get the RoundingMode value of a given rounding-mode value term.

                                                                                                                                                                                                                                                              NB: asserts isRoundingModeValue.

                                                                                                                                                                                                                                                              Get the RoundingMode value of a given rounding-mode value term.

                                                                                                                                                                                                                                                              NB: asserts isRoundingModeValue.

                                                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                                                              Instances For

                                                                                                                                                                                                                                                                Get the RoundingMode value of a given rounding-mode value term.

                                                                                                                                                                                                                                                                NB: asserts isRoundingModeValue.

                                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                                                  @[extern term_isFloatingPointPosZero]

                                                                                                                                                                                                                                                                  Determine if this term is a floating-point positive zero value (+zero).

                                                                                                                                                                                                                                                                  @[extern term_isFloatingPointNegZero]

                                                                                                                                                                                                                                                                  Determine if this term is a floating-point negative zero value (-zero).

                                                                                                                                                                                                                                                                  @[extern term_isFloatingPointPosInf]

                                                                                                                                                                                                                                                                  Determine if this term is a floating-point positive infinity value (+oo).

                                                                                                                                                                                                                                                                  @[extern term_isFloatingPointNegInf]

                                                                                                                                                                                                                                                                  Determine if this term is a floating-point negative infinity value (-oo).

                                                                                                                                                                                                                                                                  @[extern term_isFloatingPointNaN]

                                                                                                                                                                                                                                                                  Determine if this term is a floating-point NaN.

                                                                                                                                                                                                                                                                  @[extern term_isFloatingPointValue]

                                                                                                                                                                                                                                                                  Determine if this term is a floating-point value.

                                                                                                                                                                                                                                                                  Get the representation of a floating-point value.

                                                                                                                                                                                                                                                                  Returns a tuple of the floating-point value's exponent width, significand width, and a bit-vector value term.

                                                                                                                                                                                                                                                                  NB: asserts isFloatingPointValue.

                                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                                  Instances For

                                                                                                                                                                                                                                                                    Get the representation of a floating-point value.

                                                                                                                                                                                                                                                                    Returns a tuple of the floating-point value's exponent width, significand width, and a bit-vector value term.

                                                                                                                                                                                                                                                                    NB: asserts isFloatingPointValue.

                                                                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                                                                      @[extern term_getFloatingPointValue]

                                                                                                                                                                                                                                                                      Get the representation of a floating-point value.

                                                                                                                                                                                                                                                                      Returns a tuple of the floating-point value's exponent width, significand width, and a bit-vector value term.

                                                                                                                                                                                                                                                                      NB: asserts isFloatingPointValue.

                                                                                                                                                                                                                                                                      @[extern term_isSetValue]

                                                                                                                                                                                                                                                                      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 whole AST is:

                                                                                                                                                                                                                                                                      (union (singleton c_1) ... (union (singleton c_{n-1}) (singleton c_n))))
                                                                                                                                                                                                                                                                      

                                                                                                                                                                                                                                                                      where c_1 ... c_n are values ordered by id such that c_1 > ... > c_n.

                                                                                                                                                                                                                                                                      NB: a universe set term (Kind.SET_UNIVERSE) is not considered to be a set value.

                                                                                                                                                                                                                                                                      @[extern term_getSetValue]

                                                                                                                                                                                                                                                                      Get a set value as an array of terms.

                                                                                                                                                                                                                                                                      NB: asserts isSetValue.

                                                                                                                                                                                                                                                                      Get a set value as an array of terms.

                                                                                                                                                                                                                                                                      NB: asserts isSetValue.

                                                                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                                                                      Instances For

                                                                                                                                                                                                                                                                        Get a set value as an array of terms.

                                                                                                                                                                                                                                                                        NB: asserts isSetValue.

                                                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                                                                          @[extern term_isSequenceValue]

                                                                                                                                                                                                                                                                          Determine if this term is a sequence value.

                                                                                                                                                                                                                                                                          A term is a sequence value if it has kind 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 array #[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 as Solver.getValue and Solver.simplify.

                                                                                                                                                                                                                                                                          Get a sequence value as a vector of terms.

                                                                                                                                                                                                                                                                          Equations
                                                                                                                                                                                                                                                                          Instances For

                                                                                                                                                                                                                                                                            Get a sequence value as a vector of terms.

                                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                                                                              @[extern term_getSequenceValue]

                                                                                                                                                                                                                                                                              Get a sequence value as a vector of terms.

                                                                                                                                                                                                                                                                              Determine if this term is a cardinality constraint.

                                                                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                                                                              Instances For

                                                                                                                                                                                                                                                                                Get a cardinality constraint as a pair of its sort and upper bound.

                                                                                                                                                                                                                                                                                NB: asserts isCardinalityConstraint.

                                                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                                                                  @[extern term_getCardinalityConstraint]

                                                                                                                                                                                                                                                                                  Get a cardinality constraint as a pair of its sort and upper bound.

                                                                                                                                                                                                                                                                                  NB: asserts isCardinalityConstraint.

                                                                                                                                                                                                                                                                                  Get a cardinality constraint as a pair of its sort and upper bound.

                                                                                                                                                                                                                                                                                  NB: asserts isCardinalityConstraint.

                                                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                                                                                    @[extern term_isRealAlgebraicNumber]

                                                                                                                                                                                                                                                                                    Determine if this term is a real algebraic number.

                                                                                                                                                                                                                                                                                    Get the defining polynomial for a real algebraic number term, expressed in terms of the given variable.

                                                                                                                                                                                                                                                                                    NB: asserts isRealAlgebraicNumber.

                                                                                                                                                                                                                                                                                    • v The variable over which to express the polynomial.
                                                                                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                                                                                      @[extern term_getRealAlgebraicNumberDefiningPolynomial]

                                                                                                                                                                                                                                                                                      Get the defining polynomial for a real algebraic number term, expressed in terms of the given variable.

                                                                                                                                                                                                                                                                                      NB: asserts isRealAlgebraicNumber.

                                                                                                                                                                                                                                                                                      • v The variable over which to express the polynomial.

                                                                                                                                                                                                                                                                                      Get the defining polynomial for a real algebraic number term, expressed in terms of the given variable.

                                                                                                                                                                                                                                                                                      NB: asserts isRealAlgebraicNumber.

                                                                                                                                                                                                                                                                                      • v The variable over which to express the polynomial.
                                                                                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                                                                                      Instances For

                                                                                                                                                                                                                                                                                        Get the lower bound for a real algebraic number value.

                                                                                                                                                                                                                                                                                        NB: asserts isRealAlgebraicNumber.

                                                                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                                                                                          @[extern term_getRealAlgebraicNumberLowerBound]

                                                                                                                                                                                                                                                                                          Get the lower bound for a real algebraic number value.

                                                                                                                                                                                                                                                                                          NB: asserts isRealAlgebraicNumber.

                                                                                                                                                                                                                                                                                          Get the lower bound for a real algebraic number value.

                                                                                                                                                                                                                                                                                          NB: asserts isRealAlgebraicNumber.

                                                                                                                                                                                                                                                                                          Equations
                                                                                                                                                                                                                                                                                          Instances For

                                                                                                                                                                                                                                                                                            Get the upper bound for a real algebraic number value.

                                                                                                                                                                                                                                                                                            NB: asserts isRealAlgebraicNumber.

                                                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                                                            Instances For

                                                                                                                                                                                                                                                                                              Get the upper bound for a real algebraic number value.

                                                                                                                                                                                                                                                                                              NB: asserts isRealAlgebraicNumber.

                                                                                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                                                                                                @[extern term_getRealAlgebraicNumberUpperBound]

                                                                                                                                                                                                                                                                                                Get the upper bound for a real algebraic number value.

                                                                                                                                                                                                                                                                                                NB: asserts isRealAlgebraicNumber.

                                                                                                                                                                                                                                                                                                Get skolem identifier of this term.

                                                                                                                                                                                                                                                                                                Requires isSkolem.

                                                                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                                                                                  @[extern term_getSkolemId]

                                                                                                                                                                                                                                                                                                  Get skolem identifier of this term.

                                                                                                                                                                                                                                                                                                  Requires isSkolem.

                                                                                                                                                                                                                                                                                                  Get skolem identifier of this term.

                                                                                                                                                                                                                                                                                                  Requires isSkolem.

                                                                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                                                                  Instances For

                                                                                                                                                                                                                                                                                                    Get the skolem indices of this term.

                                                                                                                                                                                                                                                                                                    Requires isSkolem.

                                                                                                                                                                                                                                                                                                    Returns the skolem indices of this term. This is 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.

                                                                                                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                                                                                                      @[extern term_getSkolemIndices]

                                                                                                                                                                                                                                                                                                      Get the skolem indices of this term.

                                                                                                                                                                                                                                                                                                      Requires isSkolem.

                                                                                                                                                                                                                                                                                                      Returns the skolem indices of this term. This is 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.

                                                                                                                                                                                                                                                                                                      Get the skolem indices of this term.

                                                                                                                                                                                                                                                                                                      Requires isSkolem.

                                                                                                                                                                                                                                                                                                      Returns the skolem indices of this term. This is 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.

                                                                                                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                                                                                                                        @[instance_reducible]
                                                                                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                                                                                        def cvc5.Term.forIn {m : Type u → Type u_1} {β : Type u} [Monad m] (t : Term) (b : β) (f : Term → β → m (ForInStep β)) :
                                                                                                                                                                                                                                                                                                        m β
                                                                                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                                                                                                          @[instance_reducible]
                                                                                                                                                                                                                                                                                                          instance cvc5.Term.instForInOfMonad {m : Type u_1 → Type u_2} [Monad m] :
                                                                                                                                                                                                                                                                                                          Equations

                                                                                                                                                                                                                                                                                                          Get the children of a term.

                                                                                                                                                                                                                                                                                                          Equations
                                                                                                                                                                                                                                                                                                          • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                          Instances For
                                                                                                                                                                                                                                                                                                            @[extern term_toString]

                                                                                                                                                                                                                                                                                                            A string representation of this term.

                                                                                                                                                                                                                                                                                                            @[instance_reducible]
                                                                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                                                                            @[extern proof_null]

                                                                                                                                                                                                                                                                                                            The null proof.

                                                                                                                                                                                                                                                                                                            @[instance_reducible]
                                                                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                                                                            @[extern proof_getRule]

                                                                                                                                                                                                                                                                                                            Get the proof rule used by the root step of the root.

                                                                                                                                                                                                                                                                                                            Get the proof rewrite rule used by the root step of the proof.

                                                                                                                                                                                                                                                                                                            Requires that getRule does not return ProofRule.DSL_REWRITE or ProofRule.REWRITE.

                                                                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                                                                                                              @[extern proof_getRewriteRule]

                                                                                                                                                                                                                                                                                                              Get the proof rewrite rule used by the root step of the proof.

                                                                                                                                                                                                                                                                                                              Requires that getRule does not return ProofRule.DSL_REWRITE or ProofRule.REWRITE.

                                                                                                                                                                                                                                                                                                              Get the proof rewrite rule used by the root step of the proof.

                                                                                                                                                                                                                                                                                                              Requires that getRule does not return ProofRule.DSL_REWRITE or ProofRule.REWRITE.

                                                                                                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                                                                                                                @[extern proof_getResult]

                                                                                                                                                                                                                                                                                                                The conclusion of the root step of the proof.

                                                                                                                                                                                                                                                                                                                @[extern proof_getChildren]

                                                                                                                                                                                                                                                                                                                The premises of the root step of the proof.

                                                                                                                                                                                                                                                                                                                @[extern proof_getArguments]

                                                                                                                                                                                                                                                                                                                The arguments of the root step of the proof as a vector of terms.

                                                                                                                                                                                                                                                                                                                Some of those terms might be strings.

                                                                                                                                                                                                                                                                                                                @[extern proof_beq]
                                                                                                                                                                                                                                                                                                                opaque cvc5.Proof.beq :
                                                                                                                                                                                                                                                                                                                Proof → Proof → Bool

                                                                                                                                                                                                                                                                                                                Operator overloading for referential equality of two proofs.

                                                                                                                                                                                                                                                                                                                @[instance_reducible]
                                                                                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                                                                                @[extern proof_hash]

                                                                                                                                                                                                                                                                                                                Hash function for proofs.

                                                                                                                                                                                                                                                                                                                @[extern termManager_getBooleanSort]

                                                                                                                                                                                                                                                                                                                Get the Boolean sort.

                                                                                                                                                                                                                                                                                                                @[extern termManager_getIntegerSort]

                                                                                                                                                                                                                                                                                                                Get the Integer sort.

                                                                                                                                                                                                                                                                                                                @[extern termManager_getRealSort]

                                                                                                                                                                                                                                                                                                                Get the Real sort.

                                                                                                                                                                                                                                                                                                                @[extern termManager_getRegExpSort]

                                                                                                                                                                                                                                                                                                                Get the regular expression sort.

                                                                                                                                                                                                                                                                                                                @[extern termManager_getRoundingModeSort]

                                                                                                                                                                                                                                                                                                                Get the rounding mode sort.

                                                                                                                                                                                                                                                                                                                @[extern termManager_getStringSort]

                                                                                                                                                                                                                                                                                                                Get the string sort.

                                                                                                                                                                                                                                                                                                                @[extern termManager_mkArraySort]
                                                                                                                                                                                                                                                                                                                opaque cvc5.TermManager.mkArraySort :
                                                                                                                                                                                                                                                                                                                TermManager → (indexSort elemSort : «Sort») → Env «Sort»

                                                                                                                                                                                                                                                                                                                Create an array sort.

                                                                                                                                                                                                                                                                                                                • indexSort The array index sort.
                                                                                                                                                                                                                                                                                                                • elemSort The array element sort.
                                                                                                                                                                                                                                                                                                                @[extern termManager_mkBitVectorSort]

                                                                                                                                                                                                                                                                                                                Create a bit-vector sort.

                                                                                                                                                                                                                                                                                                                • size The bit-width of the bit-vector sort.
                                                                                                                                                                                                                                                                                                                @[extern termManager_mkFloatingPointSort]

                                                                                                                                                                                                                                                                                                                Create a floating-point sort.

                                                                                                                                                                                                                                                                                                                • exp The bit-width of the exponent of the floating-point sort.
                                                                                                                                                                                                                                                                                                                • sig The bit-width of the significand of the floating-point sort.
                                                                                                                                                                                                                                                                                                                @[extern termManager_mkFiniteFieldSortOfString]

                                                                                                                                                                                                                                                                                                                Create a finite-field sort from a given string of base n.

                                                                                                                                                                                                                                                                                                                • size The modulus of the field. Must be a prime.
                                                                                                                                                                                                                                                                                                                • base The base of the string representation of size.

                                                                                                                                                                                                                                                                                                                Create a finite-field sort.

                                                                                                                                                                                                                                                                                                                • size The modulus of the field in base 10. Must be a prime.
                                                                                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                                                                                                  @[extern termManager_mkFunctionSort]

                                                                                                                                                                                                                                                                                                                  Create function sort.

                                                                                                                                                                                                                                                                                                                  • sorts The sort of the function arguments.
                                                                                                                                                                                                                                                                                                                  • codomain The sort of the function return value.
                                                                                                                                                                                                                                                                                                                  @[extern termManager_mkSkolem]
                                                                                                                                                                                                                                                                                                                  opaque cvc5.TermManager.mkSkolem :
                                                                                                                                                                                                                                                                                                                  TermManager → (id : SkolemId) → (indices : Array Term) → Env Term

                                                                                                                                                                                                                                                                                                                  Create a skolem.

                                                                                                                                                                                                                                                                                                                  • id: The skolem identifier.
                                                                                                                                                                                                                                                                                                                  • indices: The indices of the skolem.

                                                                                                                                                                                                                                                                                                                  Get the number of indices for a skolem id.

                                                                                                                                                                                                                                                                                                                  • id: The skolem id.
                                                                                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                                                                                                                    @[extern termManager_getNumIndicesForSkolemId]

                                                                                                                                                                                                                                                                                                                    Get the number of indices for a skolem id.

                                                                                                                                                                                                                                                                                                                    • id: The skolem id.

                                                                                                                                                                                                                                                                                                                    Get the number of indices for a skolem id.

                                                                                                                                                                                                                                                                                                                    • id: The skolem id.
                                                                                                                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                                                                                                                      @[extern termManager_mkPredicateSort]

                                                                                                                                                                                                                                                                                                                      Create a predicate sort.

                                                                                                                                                                                                                                                                                                                      This is equivalent to calling mkFunctionSort with Boolean sort as the codomain.

                                                                                                                                                                                                                                                                                                                      • sorts The list of sorts of the predicate.
                                                                                                                                                                                                                                                                                                                      @[extern termManager_mkTupleSort]

                                                                                                                                                                                                                                                                                                                      Create a tuple sort.

                                                                                                                                                                                                                                                                                                                      • sorts The sorts of the elements of the tuple.
                                                                                                                                                                                                                                                                                                                      @[extern termManager_mkRecordSort]

                                                                                                                                                                                                                                                                                                                      Create a record sort.

                                                                                                                                                                                                                                                                                                                      Warning: This function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                      • fields The list of fields of the record.
                                                                                                                                                                                                                                                                                                                      @[extern termManager_mkUninterpretedSortConstructorSort]

                                                                                                                                                                                                                                                                                                                      Create an uninterpreted sort constructor sort.

                                                                                                                                                                                                                                                                                                                      An uninterpreted sort constructor is an uninterpreted sort with arity > 0.

                                                                                                                                                                                                                                                                                                                      • arity The arity of the sort (must be > 0).
                                                                                                                                                                                                                                                                                                                      • symbol The symbol of the sort.
                                                                                                                                                                                                                                                                                                                      @[extern termManager_mkSetSort]

                                                                                                                                                                                                                                                                                                                      Create a set parameter.

                                                                                                                                                                                                                                                                                                                      • elemSort The sort of the set elements.
                                                                                                                                                                                                                                                                                                                      @[extern termManager_mkBagSort]

                                                                                                                                                                                                                                                                                                                      Create a set parameter.

                                                                                                                                                                                                                                                                                                                      • elemSort The sort of the set elements.
                                                                                                                                                                                                                                                                                                                      @[extern termManager_mkSequenceSort]

                                                                                                                                                                                                                                                                                                                      Create a set parameter.

                                                                                                                                                                                                                                                                                                                      • elemSort The sort of the set elements.
                                                                                                                                                                                                                                                                                                                      @[extern termManager_mkAbstractSort]

                                                                                                                                                                                                                                                                                                                      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 arguments sorts. For example, SortKind.ARRAY_SORT and SortKind.BITVECTOR_SORT can be passed as the kind k to this function, while SortKind.INTEGER_SORT and SortKind.STRING_SORT cannot.

                                                                                                                                                                                                                                                                                                                      NB: Providing the kind SortKind.ABSTRACT_SORT as an argument to this function returns the (fully) unspecified sort, denoted ?.

                                                                                                                                                                                                                                                                                                                      NB: 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 SortKind.ARRAY_SORT.

                                                                                                                                                                                                                                                                                                                      @[extern termManager_mkUninterpretedSort]

                                                                                                                                                                                                                                                                                                                      Create an uninterpreted sort.

                                                                                                                                                                                                                                                                                                                      • symbol The name of the sort.
                                                                                                                                                                                                                                                                                                                      @[extern termManager_mkUnresolvedDatatypeSort]

                                                                                                                                                                                                                                                                                                                      Create an unresolved datatype sort.

                                                                                                                                                                                                                                                                                                                      This is for creating yet unresolved sort placeholders for mutually recursive parametric datatypes.

                                                                                                                                                                                                                                                                                                                      • symbol The name of the sort.
                                                                                                                                                                                                                                                                                                                      • arity The number of sort parameters of the sort.
                                                                                                                                                                                                                                                                                                                      @[extern termManager_mkNullableSort]

                                                                                                                                                                                                                                                                                                                      Create a nullable sort.

                                                                                                                                                                                                                                                                                                                      • sort The sort of the element of the nullable.
                                                                                                                                                                                                                                                                                                                      @[extern termManager_mkParamSort]

                                                                                                                                                                                                                                                                                                                      Create a sort parameter.

                                                                                                                                                                                                                                                                                                                      • symbol The name of the sort.

                                                                                                                                                                                                                                                                                                                      Warning: This function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                      @[extern termManager_mkBoolean]

                                                                                                                                                                                                                                                                                                                      Create a Boolean constant.

                                                                                                                                                                                                                                                                                                                      • b: The Boolean constant.
                                                                                                                                                                                                                                                                                                                      @[extern termManager_mkTrue]

                                                                                                                                                                                                                                                                                                                      Create a Boolean true constant.

                                                                                                                                                                                                                                                                                                                      @[extern termManager_mkFalse]

                                                                                                                                                                                                                                                                                                                      Create a Boolean false constant.

                                                                                                                                                                                                                                                                                                                      @[extern termManager_mkPi]

                                                                                                                                                                                                                                                                                                                      Create a constant representing the number Pi.

                                                                                                                                                                                                                                                                                                                      Create an integer-value term.

                                                                                                                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                                                                                                                                        @[extern termManager_mkIntegerOfString]

                                                                                                                                                                                                                                                                                                                        Create an integer-value term.

                                                                                                                                                                                                                                                                                                                        • s: the string representation of the constant, may represent an integer such as ("123").

                                                                                                                                                                                                                                                                                                                        Create a real-value term from a Rat.

                                                                                                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                                                                                                                          @[extern termManager_mkRealOfString]

                                                                                                                                                                                                                                                                                                                          Create a real-value term.

                                                                                                                                                                                                                                                                                                                          • s: the string representation of the constant, may represent an integer ("123") or a real constant ("12.34", "12/34").
                                                                                                                                                                                                                                                                                                                          def cvc5.TermManager.mkReal (tm : TermManager) (num : Int) (den : Int := 1) (den_ne_0 : den ≠ 0 := by simp <;> omega) :

                                                                                                                                                                                                                                                                                                                          Create a real-value term from numerator/denominator Int-s.

                                                                                                                                                                                                                                                                                                                          Equations
                                                                                                                                                                                                                                                                                                                          Instances For
                                                                                                                                                                                                                                                                                                                            @[extern termManager_mkRegexpAll]

                                                                                                                                                                                                                                                                                                                            Create a regular expression all (re.all) term.

                                                                                                                                                                                                                                                                                                                            @[extern termManager_mkRegexpAllchar]

                                                                                                                                                                                                                                                                                                                            Create a regular expression allchar (re.allchar) term.

                                                                                                                                                                                                                                                                                                                            @[extern termManager_mkRegexpNone]

                                                                                                                                                                                                                                                                                                                            Create a regular expression none (re.none) term.

                                                                                                                                                                                                                                                                                                                            @[extern termManager_mkEmptySet]

                                                                                                                                                                                                                                                                                                                            Create a constant representing an empty set of the given sort.

                                                                                                                                                                                                                                                                                                                            • sort The sort of the set elements.
                                                                                                                                                                                                                                                                                                                            @[extern termManager_mkEmptyBag]

                                                                                                                                                                                                                                                                                                                            Create a constant representing an empty bag of the given sort.

                                                                                                                                                                                                                                                                                                                            • sort The sort of the bag elements.
                                                                                                                                                                                                                                                                                                                            @[extern termManager_mkSepEmp]

                                                                                                                                                                                                                                                                                                                            Create a separation logic empty term.

                                                                                                                                                                                                                                                                                                                            @[extern termManager_mkSepNil]

                                                                                                                                                                                                                                                                                                                            Create a separation logic nil term.

                                                                                                                                                                                                                                                                                                                            • sort The sort of the nil term.

                                                                                                                                                                                                                                                                                                                            Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                            @[extern termManager_mkString]
                                                                                                                                                                                                                                                                                                                            opaque cvc5.TermManager.mkString :
                                                                                                                                                                                                                                                                                                                            TermManager → (s : String) → (useEscSequences : optParam Bool false) → Env Term

                                                                                                                                                                                                                                                                                                                            Create a string constant from a String.

                                                                                                                                                                                                                                                                                                                            The string may contain SMT-LIB-compatible escape sequences like \u1234 to encode unicode characters.

                                                                                                                                                                                                                                                                                                                            • s The string this constant represents.
                                                                                                                                                                                                                                                                                                                            • useEscSequences Determines whether escape sequences in s should be converted to the corresponding unicode characters, default false.
                                                                                                                                                                                                                                                                                                                            @[extern termManager_mkEmptySequence]

                                                                                                                                                                                                                                                                                                                            Create an empty sequence of the given element sort.

                                                                                                                                                                                                                                                                                                                            • sort The element sort of the sequence.
                                                                                                                                                                                                                                                                                                                            @[extern termManager_mkUniverseSet]

                                                                                                                                                                                                                                                                                                                            Create a universe set of the given sort.

                                                                                                                                                                                                                                                                                                                            • sort The sort of the set elements.
                                                                                                                                                                                                                                                                                                                            @[extern termManager_mkBitVector]
                                                                                                                                                                                                                                                                                                                            opaque cvc5.TermManager.mkBitVector :
                                                                                                                                                                                                                                                                                                                            TermManager → (size : UInt32) → (val : optParam UInt64 0) → Env Term

                                                                                                                                                                                                                                                                                                                            Create a bit-vector constant of given size and value.

                                                                                                                                                                                                                                                                                                                            The given value must fit into a bit-vector of the given size.

                                                                                                                                                                                                                                                                                                                            • size The bit-width of the bit-vector sort.
                                                                                                                                                                                                                                                                                                                            • val The value of the constant.
                                                                                                                                                                                                                                                                                                                            @[extern termManager_mkBitVectorOfString]
                                                                                                                                                                                                                                                                                                                            opaque cvc5.TermManager.mkBitVectorOfString :
                                                                                                                                                                                                                                                                                                                            TermManager → (size : UInt32) → (s : String) → (base : UInt32) → Env Term

                                                                                                                                                                                                                                                                                                                            Create a bit-vector constant of a given bit-width from a given string of base 2, 10, or 16.

                                                                                                                                                                                                                                                                                                                            The given value must fit into a bit-vector of the given size.

                                                                                                                                                                                                                                                                                                                            • size The bit-width of the bit-vector sort.
                                                                                                                                                                                                                                                                                                                            • s The string representation of the constant.
                                                                                                                                                                                                                                                                                                                            • val The base of the string representation: 2 for binary, 10 for decimal, and 16 for hexadecimal.

                                                                                                                                                                                                                                                                                                                            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 range [0,size). If it is outside this range, it will be reduced modulo size before being constructed.

                                                                                                                                                                                                                                                                                                                            • value The string representation of the constant.
                                                                                                                                                                                                                                                                                                                            • sort The field sort.
                                                                                                                                                                                                                                                                                                                            • base The base of the string representation of value, default 10.
                                                                                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkFiniteFieldElemOfString]
                                                                                                                                                                                                                                                                                                                              opaque cvc5.TermManager.mkFiniteFieldElemOfString :
                                                                                                                                                                                                                                                                                                                              TermManager → (value : String) → (sort : «Sort») → (base : optParam UInt32 10) → Env Term

                                                                                                                                                                                                                                                                                                                              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 range [0,size). If it is outside this range, it will be reduced modulo size before being constructed.

                                                                                                                                                                                                                                                                                                                              • value The string representation of the constant.
                                                                                                                                                                                                                                                                                                                              • sort The field sort.
                                                                                                                                                                                                                                                                                                                              • base The base of the string representation of value, default 10.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkConstArray]
                                                                                                                                                                                                                                                                                                                              opaque cvc5.TermManager.mkConstArray :
                                                                                                                                                                                                                                                                                                                              TermManager → (sort : «Sort») → (val : Term) → Env Term

                                                                                                                                                                                                                                                                                                                              Create a constant array with the provided constant value stored at every index.

                                                                                                                                                                                                                                                                                                                              • 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).
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkFloatingPointPosInf]

                                                                                                                                                                                                                                                                                                                              Create a positive infinity floating-point constant (SMT-LIB: +oo).

                                                                                                                                                                                                                                                                                                                              • exp Number of bits in the exponent.
                                                                                                                                                                                                                                                                                                                              • sig Number of bits in the significand.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkFloatingPointNegInf]

                                                                                                                                                                                                                                                                                                                              Create a negative infinity floating-point constant (SMT-LIB: -oo).

                                                                                                                                                                                                                                                                                                                              • exp Number of bits in the exponent.
                                                                                                                                                                                                                                                                                                                              • sig Number of bits in the significand.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkFloatingPointNaN]

                                                                                                                                                                                                                                                                                                                              Create a not-a-number floating-point constant (SMT-LIB: NaN).

                                                                                                                                                                                                                                                                                                                              • exp Number of bits in the exponent.
                                                                                                                                                                                                                                                                                                                              • sig Number of bits in the significand.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkFloatingPointPosZero]

                                                                                                                                                                                                                                                                                                                              Create a positive zero floating-point constant (SMT-LIB: +zero).

                                                                                                                                                                                                                                                                                                                              • exp Number of bits in the exponent.
                                                                                                                                                                                                                                                                                                                              • sig Number of bits in the significand.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkFloatingPointNegZero]

                                                                                                                                                                                                                                                                                                                              Create a negative zero floating-point constant (SMT-LIB: -zero).

                                                                                                                                                                                                                                                                                                                              • exp Number of bits in the exponent.
                                                                                                                                                                                                                                                                                                                              • sig Number of bits in the significand.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkRoundingMode]

                                                                                                                                                                                                                                                                                                                              Create a rounding mode value.

                                                                                                                                                                                                                                                                                                                              • rm The floating point rounding mode this constant represents.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkFloatingPoint]
                                                                                                                                                                                                                                                                                                                              opaque cvc5.TermManager.mkFloatingPoint :
                                                                                                                                                                                                                                                                                                                              TermManager → (exp sig : UInt32) → (val : Term) → Env Term

                                                                                                                                                                                                                                                                                                                              Create a floating-point value from a bit-vector given in IEEE-754 format.

                                                                                                                                                                                                                                                                                                                              • exp Size of the exponent.
                                                                                                                                                                                                                                                                                                                              • sig Size of the significand.
                                                                                                                                                                                                                                                                                                                              • val Value of the floating-point constant as a bit-vector term.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkFloatingPointOfComponents]

                                                                                                                                                                                                                                                                                                                              Create a floating-point value from its three IEEE-754 bit-vector value components.

                                                                                                                                                                                                                                                                                                                              • sign The sign bit.
                                                                                                                                                                                                                                                                                                                              • exp The bit-vector representing the exponent.
                                                                                                                                                                                                                                                                                                                              • sig The bit-vector representing the significand.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkCardinalityConstraint]
                                                                                                                                                                                                                                                                                                                              opaque cvc5.TermManager.mkCardinalityConstraint :
                                                                                                                                                                                                                                                                                                                              TermManager → (sort : «Sort») → (upperBound : UInt32) → Env Term

                                                                                                                                                                                                                                                                                                                              Create a cardinality constraint for an uninterpreted sort.

                                                                                                                                                                                                                                                                                                                              Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                              • sort The sort the cardinality constraint is for.
                                                                                                                                                                                                                                                                                                                              • upperBound The upper bound on the cardinality of the sort.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkTuple]

                                                                                                                                                                                                                                                                                                                              Create a tuple term.

                                                                                                                                                                                                                                                                                                                              • terms The elements in the tuple.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkNullableSome]

                                                                                                                                                                                                                                                                                                                              Create a nullable some term.

                                                                                                                                                                                                                                                                                                                              • term The element value.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkNullableVal]

                                                                                                                                                                                                                                                                                                                              Create a selector for nullable term.

                                                                                                                                                                                                                                                                                                                              • term A nullable term.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkNullableIsNull]

                                                                                                                                                                                                                                                                                                                              Create a null tester for a nullable term.

                                                                                                                                                                                                                                                                                                                              • term A nullable term.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkNullableIsSome]

                                                                                                                                                                                                                                                                                                                              Create a some tester for a nullable term.

                                                                                                                                                                                                                                                                                                                              • term A nullable term.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkNullableNull]

                                                                                                                                                                                                                                                                                                                              Create a constant representing a null of the given sort.

                                                                                                                                                                                                                                                                                                                              • sort The sort of the nullable element.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkNullableLift]
                                                                                                                                                                                                                                                                                                                              opaque cvc5.TermManager.mkNullableLift :
                                                                                                                                                                                                                                                                                                                              TermManager → (kind : Kind) → (args : Array Term) → Env Term

                                                                                                                                                                                                                                                                                                                              Create a term that lifts kind to nullable terms.

                                                                                                                                                                                                                                                                                                                              • kind The lifted operator.
                                                                                                                                                                                                                                                                                                                              • args The arguments of the lifted operator.

                                                                                                                                                                                                                                                                                                                              Example: if we have the term ((_ nullable.lift +) x y), with x and y of type (Nullable Int), then kind would be Kind.ADD, and args would be #[x, y]. This function would return (nullable.lift (lambda ((a Int) (b Int)) (+ a b)) x y)

                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkTerm]
                                                                                                                                                                                                                                                                                                                              opaque cvc5.TermManager.mkTerm :
                                                                                                                                                                                                                                                                                                                              TermManager → (kind : Kind) → (children : optParam (Array Term) #[]) → Env Term

                                                                                                                                                                                                                                                                                                                              Create n-ary term of given kind.

                                                                                                                                                                                                                                                                                                                              • kind The kind of the term.
                                                                                                                                                                                                                                                                                                                              • children The children of the term.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkTermOfOp]
                                                                                                                                                                                                                                                                                                                              opaque cvc5.TermManager.mkTermOfOp :
                                                                                                                                                                                                                                                                                                                              TermManager → (op : Op) → (children : optParam (Array Term) #[]) → Env Term

                                                                                                                                                                                                                                                                                                                              Create n-ary term of given kind from a given operator.

                                                                                                                                                                                                                                                                                                                              Create operators with mkOp.

                                                                                                                                                                                                                                                                                                                              • op The operator.
                                                                                                                                                                                                                                                                                                                              • children The children of the term.
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkConst]
                                                                                                                                                                                                                                                                                                                              opaque cvc5.TermManager.mkConst :
                                                                                                                                                                                                                                                                                                                              TermManager → (srt : «Sort») → (name : optParam String "") → Env Term

                                                                                                                                                                                                                                                                                                                              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.

                                                                                                                                                                                                                                                                                                                              • sort The sort of the constant.
                                                                                                                                                                                                                                                                                                                              • symbol The name of the constant (optional).
                                                                                                                                                                                                                                                                                                                              @[extern termManager_mkVar]
                                                                                                                                                                                                                                                                                                                              opaque cvc5.TermManager.mkVar :
                                                                                                                                                                                                                                                                                                                              TermManager → (srt : «Sort») → (name : optParam String "") → Env Term

                                                                                                                                                                                                                                                                                                                              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 mkVar.

                                                                                                                                                                                                                                                                                                                              • sort The sort of the variable.
                                                                                                                                                                                                                                                                                                                              • symbol The name of the variable (optional).
                                                                                                                                                                                                                                                                                                                              def cvc5.TermManager.mkOp :
                                                                                                                                                                                                                                                                                                                              TermManager → (kind : Kind) → (args : optParam (Array Nat) #[]) → Env Op

                                                                                                                                                                                                                                                                                                                              Create operator of Kind:

                                                                                                                                                                                                                                                                                                                              • Kind.BITVECTOR_EXTRACT
                                                                                                                                                                                                                                                                                                                              • Kind.BITVECTOR_REPEAT
                                                                                                                                                                                                                                                                                                                              • Kind.BITVECTOR_ROTATE_LEFT
                                                                                                                                                                                                                                                                                                                              • Kind.BITVECTOR_ROTATE_RIGHT
                                                                                                                                                                                                                                                                                                                              • Kind.BITVECTOR_SIGN_EXTEND
                                                                                                                                                                                                                                                                                                                              • Kind.BITVECTOR_ZERO_EXTEND
                                                                                                                                                                                                                                                                                                                              • Kind.DIVISIBLE
                                                                                                                                                                                                                                                                                                                              • Kind.FLOATINGPOINT_TO_FP_FROM_FP
                                                                                                                                                                                                                                                                                                                              • Kind.FLOATINGPOINT_TO_FP_FROM_IEEE_BV
                                                                                                                                                                                                                                                                                                                              • Kind.FLOATINGPOINT_TO_FP_FROM_REAL
                                                                                                                                                                                                                                                                                                                              • Kind.FLOATINGPOINT_TO_FP_FROM_SBV
                                                                                                                                                                                                                                                                                                                              • Kind.FLOATINGPOINT_TO_FP_FROM_UBV
                                                                                                                                                                                                                                                                                                                              • Kind.FLOATINGPOINT_TO_SBV
                                                                                                                                                                                                                                                                                                                              • Kind.FLOATINGPOINT_TO_UBV
                                                                                                                                                                                                                                                                                                                              • Kind.INT_TO_BITVECTOR
                                                                                                                                                                                                                                                                                                                              • Kind.TUPLE_PROJECT

                                                                                                                                                                                                                                                                                                                              See cvc5.Kind for a description of the parameters.

                                                                                                                                                                                                                                                                                                                              • kind The kind of the operator.
                                                                                                                                                                                                                                                                                                                              • args The arguments (indices) of the operator.

                                                                                                                                                                                                                                                                                                                              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.

                                                                                                                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                                                                                                                                @[extern termManager_mkOpOfIndices]
                                                                                                                                                                                                                                                                                                                                opaque cvc5.TermManager.mkOpOfIndices :
                                                                                                                                                                                                                                                                                                                                TermManager → (kind : Kind) → (args : optParam (Array Nat) #[]) → Env Op

                                                                                                                                                                                                                                                                                                                                Create operator of Kind:

                                                                                                                                                                                                                                                                                                                                • Kind.BITVECTOR_EXTRACT
                                                                                                                                                                                                                                                                                                                                • Kind.BITVECTOR_REPEAT
                                                                                                                                                                                                                                                                                                                                • Kind.BITVECTOR_ROTATE_LEFT
                                                                                                                                                                                                                                                                                                                                • Kind.BITVECTOR_ROTATE_RIGHT
                                                                                                                                                                                                                                                                                                                                • Kind.BITVECTOR_SIGN_EXTEND
                                                                                                                                                                                                                                                                                                                                • Kind.BITVECTOR_ZERO_EXTEND
                                                                                                                                                                                                                                                                                                                                • Kind.DIVISIBLE
                                                                                                                                                                                                                                                                                                                                • Kind.FLOATINGPOINT_TO_FP_FROM_FP
                                                                                                                                                                                                                                                                                                                                • Kind.FLOATINGPOINT_TO_FP_FROM_IEEE_BV
                                                                                                                                                                                                                                                                                                                                • Kind.FLOATINGPOINT_TO_FP_FROM_REAL
                                                                                                                                                                                                                                                                                                                                • Kind.FLOATINGPOINT_TO_FP_FROM_SBV
                                                                                                                                                                                                                                                                                                                                • Kind.FLOATINGPOINT_TO_FP_FROM_UBV
                                                                                                                                                                                                                                                                                                                                • Kind.FLOATINGPOINT_TO_SBV
                                                                                                                                                                                                                                                                                                                                • Kind.FLOATINGPOINT_TO_UBV
                                                                                                                                                                                                                                                                                                                                • Kind.INT_TO_BITVECTOR
                                                                                                                                                                                                                                                                                                                                • Kind.TUPLE_PROJECT

                                                                                                                                                                                                                                                                                                                                See cvc5.Kind for a description of the parameters.

                                                                                                                                                                                                                                                                                                                                • kind The kind of the operator.
                                                                                                                                                                                                                                                                                                                                • args The arguments (indices) of the operator.

                                                                                                                                                                                                                                                                                                                                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.

                                                                                                                                                                                                                                                                                                                                @[extern termManager_mkOpOfString]
                                                                                                                                                                                                                                                                                                                                opaque cvc5.TermManager.mkOpOfString :
                                                                                                                                                                                                                                                                                                                                TermManager → (kind : Kind) → (arg : String) → Env Op

                                                                                                                                                                                                                                                                                                                                Create operator of kind Kind.DIVISIBLE to support arbitrary precision integers.

                                                                                                                                                                                                                                                                                                                                See cvc5.Kind for a description of the parameters.

                                                                                                                                                                                                                                                                                                                                • kind The kind of the operator.
                                                                                                                                                                                                                                                                                                                                • arg The string argument to this operator.
                                                                                                                                                                                                                                                                                                                                @[extern termManager_mkDatatypeConstructorDecl]

                                                                                                                                                                                                                                                                                                                                Create a datatype constructor declaration.

                                                                                                                                                                                                                                                                                                                                • name The name of the datatype constructor.
                                                                                                                                                                                                                                                                                                                                @[extern termManager_mkDatatypeDecl]
                                                                                                                                                                                                                                                                                                                                opaque cvc5.TermManager.mkDatatypeDecl :
                                                                                                                                                                                                                                                                                                                                TermManager → (name : String) → (params : optParam (Array «Sort») #[]) → (isCoDatatype : optParam Bool false) → Env DatatypeDecl

                                                                                                                                                                                                                                                                                                                                Create a datatype declaration.

                                                                                                                                                                                                                                                                                                                                • name The name of the datatype.
                                                                                                                                                                                                                                                                                                                                • params A list of sort parameters.
                                                                                                                                                                                                                                                                                                                                • isCoDatatype True if a codatatype is to be constructed.
                                                                                                                                                                                                                                                                                                                                @[extern termManager_mkDatatypeSort]

                                                                                                                                                                                                                                                                                                                                Create a datatype sort.

                                                                                                                                                                                                                                                                                                                                • dtypeDecl The datatype declaration from which the sort is created.
                                                                                                                                                                                                                                                                                                                                @[extern termManager_mkDatatypeSorts]

                                                                                                                                                                                                                                                                                                                                Create a vector of datatype sorts.

                                                                                                                                                                                                                                                                                                                                The names of the datatype declarations must be distinct.

                                                                                                                                                                                                                                                                                                                                • dtypeDecls The datatype declarations from which the sort is created.
                                                                                                                                                                                                                                                                                                                                def cvc5.EnvT.run {m : Type → Type} {α : Type} [Monad m] [MonadLiftT BaseIO m] (code : EnvT m α) :
                                                                                                                                                                                                                                                                                                                                m (Except Error α)

                                                                                                                                                                                                                                                                                                                                Runs EnvT code.

                                                                                                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                                                                                                                  @[instance_reducible]
                                                                                                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                  @[instance_reducible]
                                                                                                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                  @[reducible, inline]
                                                                                                                                                                                                                                                                                                                                  abbrev cvc5.run {m : Type → Type} {α : Type} [Monad m] [MonadLiftT BaseIO m] (code : EnvT m α) :
                                                                                                                                                                                                                                                                                                                                  m (Except Error α)

                                                                                                                                                                                                                                                                                                                                  Runs EnvT code.

                                                                                                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                                                                                                                                    def cvc5.Env.run {α : Type} :
                                                                                                                                                                                                                                                                                                                                    Env α → BaseIO (Except Error α)

                                                                                                                                                                                                                                                                                                                                    Runs EnvT code.

                                                                                                                                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                                                                                                                                      def cvc5.Env.runIO {α : Type} (code : Env α) :
                                                                                                                                                                                                                                                                                                                                      IO α

                                                                                                                                                                                                                                                                                                                                      Runs Env code in the IO monad, throws cvc5.Errors as IO.Errors.

                                                                                                                                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                                                                                                                                                        @[extern grammar_isNull]

                                                                                                                                                                                                                                                                                                                                        Determine if this is the null grammar.

                                                                                                                                                                                                                                                                                                                                        @[extern grammar_beq]

                                                                                                                                                                                                                                                                                                                                        Physical equality of two grammars.

                                                                                                                                                                                                                                                                                                                                        @[instance_reducible]
                                                                                                                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                                                                                                                        @[extern grammar_hash]

                                                                                                                                                                                                                                                                                                                                        Hash function for grammar.

                                                                                                                                                                                                                                                                                                                                        @[extern grammar_addRule]
                                                                                                                                                                                                                                                                                                                                        opaque cvc5.Grammar.addRule :
                                                                                                                                                                                                                                                                                                                                        Grammar → (ntSymbol rule : Term) → Env Grammar

                                                                                                                                                                                                                                                                                                                                        Add rule to the set of rules corresponding to ntSymbol.

                                                                                                                                                                                                                                                                                                                                        • ntSymbol The non-terminal to which the rule is added.
                                                                                                                                                                                                                                                                                                                                        • rule The rule to add.
                                                                                                                                                                                                                                                                                                                                        @[extern grammar_addRules]
                                                                                                                                                                                                                                                                                                                                        opaque cvc5.Grammar.addRules :
                                                                                                                                                                                                                                                                                                                                        Grammar → (ntSymbol : Term) → (rules : Array Term) → Env Grammar

                                                                                                                                                                                                                                                                                                                                        Add rules to the set of rules corresponding to ntSymbol.

                                                                                                                                                                                                                                                                                                                                        • ntSymbol The non-terminal to which the rules are added.
                                                                                                                                                                                                                                                                                                                                        • rules The rules to add.
                                                                                                                                                                                                                                                                                                                                        @[extern grammar_addAnyConstant]
                                                                                                                                                                                                                                                                                                                                        opaque cvc5.Grammar.addAnyConstant :
                                                                                                                                                                                                                                                                                                                                        Grammar → (ntSymbol : Term) → Env Grammar

                                                                                                                                                                                                                                                                                                                                        Allow ntSymbol to be an arbitrary constant.

                                                                                                                                                                                                                                                                                                                                        • ntSymbol The non-terminal allowed to be any constant.
                                                                                                                                                                                                                                                                                                                                        @[extern grammar_addAnyVariable]
                                                                                                                                                                                                                                                                                                                                        opaque cvc5.Grammar.addAnyVariable :
                                                                                                                                                                                                                                                                                                                                        Grammar → (ntSymbol : Term) → Env Grammar

                                                                                                                                                                                                                                                                                                                                        Allow ntSymbol to be any input variable to corresponding synth-fun/synth-inv with the same sort as ntSymbol.

                                                                                                                                                                                                                                                                                                                                        • ntSymbol The non-terminal allowed to be any input variable.
                                                                                                                                                                                                                                                                                                                                        @[extern command_isNull]

                                                                                                                                                                                                                                                                                                                                        True if the command is null.

                                                                                                                                                                                                                                                                                                                                        @[extern command_getCommandName]

                                                                                                                                                                                                                                                                                                                                        Get the name for this command, e.g., "assert".

                                                                                                                                                                                                                                                                                                                                        @[extern command_invoke]

                                                                                                                                                                                                                                                                                                                                        Invoke the command on the solver and symbol manager sm, prints the result to a string.

                                                                                                                                                                                                                                                                                                                                        • solver The solver to invoke the command on.
                                                                                                                                                                                                                                                                                                                                        • sm The symbol manager to invoke the command on.
                                                                                                                                                                                                                                                                                                                                        @[extern symbolManager_isLogicSet]

                                                                                                                                                                                                                                                                                                                                        Determine if the logic of this symbol manager has been set.

                                                                                                                                                                                                                                                                                                                                        @[extern symbolManager_getLogic]

                                                                                                                                                                                                                                                                                                                                        Get the logic configured for this symbol manager.

                                                                                                                                                                                                                                                                                                                                        Asserts SymbolManager.isLogicSet.

                                                                                                                                                                                                                                                                                                                                        @[extern symbolManager_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.

                                                                                                                                                                                                                                                                                                                                        @[extern symbolManager_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.

                                                                                                                                                                                                                                                                                                                                        @[extern symbolManager_getNamedTerms]

                                                                                                                                                                                                                                                                                                                                        Get a mapping from terms to names that have been given to them via the :named attribute.

                                                                                                                                                                                                                                                                                                                                        @[extern inputParser_getSymbolManager]

                                                                                                                                                                                                                                                                                                                                        Get the associated symbol manager of this input parser.

                                                                                                                                                                                                                                                                                                                                        @[extern inputParser_isDone]

                                                                                                                                                                                                                                                                                                                                        Is this parser done reading input?

                                                                                                                                                                                                                                                                                                                                        @[extern inputParser_setFileInput]

                                                                                                                                                                                                                                                                                                                                        Configure given file as input.

                                                                                                                                                                                                                                                                                                                                        • fileName The name of the file to configure.
                                                                                                                                                                                                                                                                                                                                        • lang The input language of the input string, default InputLanguage::SMT_LIB_2_6.
                                                                                                                                                                                                                                                                                                                                        @[extern inputParser_setStringInput]

                                                                                                                                                                                                                                                                                                                                        Configure a given concrete input string as the input to this parser.

                                                                                                                                                                                                                                                                                                                                        • input The input string.
                                                                                                                                                                                                                                                                                                                                        • lang The input language of the input string, default InputLanguage::SMT_LIB_2_6.
                                                                                                                                                                                                                                                                                                                                        • name The name to use as input stream name for error messages, default "lean-cvc5".
                                                                                                                                                                                                                                                                                                                                        @[extern inputParser_setIncrementalStringInput]

                                                                                                                                                                                                                                                                                                                                        Configure that we will be feeding strings to this parser via appendIncrementalStringInput.

                                                                                                                                                                                                                                                                                                                                        • lang The input language, default InputLanguage::SMT_LIB_2_6.
                                                                                                                                                                                                                                                                                                                                        • name The name of the stream, for use in error messages, default "lean-cvc5".
                                                                                                                                                                                                                                                                                                                                        @[extern inputParser_appendIncrementalStringInput]

                                                                                                                                                                                                                                                                                                                                        Append string to the input being parsed by this parser. Should be called after calling setIncrementalStringInput.

                                                                                                                                                                                                                                                                                                                                        • input The input string.

                                                                                                                                                                                                                                                                                                                                        Parse and returns the next command if any, or none if the parser is at end-of-input.

                                                                                                                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                                                                                                                                          @[extern inputParser_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.

                                                                                                                                                                                                                                                                                                                                          @[extern inputParser_nextTerm]

                                                                                                                                                                                                                                                                                                                                          Parse and return the next term. Requires setting the logic prior to this point.

                                                                                                                                                                                                                                                                                                                                          Parse and returns the next term if any, or none if the parser is at end-of-input.

                                                                                                                                                                                                                                                                                                                                          Equations
                                                                                                                                                                                                                                                                                                                                          Instances For
                                                                                                                                                                                                                                                                                                                                            @[extern solver_getVersion]

                                                                                                                                                                                                                                                                                                                                            Get a string representation of the version of this solver.

                                                                                                                                                                                                                                                                                                                                            @[extern solver_setOption]
                                                                                                                                                                                                                                                                                                                                            opaque cvc5.Solver.setOption (solver : Solver) (option value : String) :

                                                                                                                                                                                                                                                                                                                                            Set option.

                                                                                                                                                                                                                                                                                                                                            • option: The option name.
                                                                                                                                                                                                                                                                                                                                            • value: The option value.
                                                                                                                                                                                                                                                                                                                                            @[extern solver_push]
                                                                                                                                                                                                                                                                                                                                            opaque cvc5.Solver.push (solver : Solver) (nscopes : UInt32 := 1) :

                                                                                                                                                                                                                                                                                                                                            Push (a) level(s) to the assertion stack.

                                                                                                                                                                                                                                                                                                                                            (push <numeral>)
                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                            • nscopes: The number of levels to push.
                                                                                                                                                                                                                                                                                                                                            @[extern solver_resetAssertions]

                                                                                                                                                                                                                                                                                                                                            Remove all assertions.

                                                                                                                                                                                                                                                                                                                                            @[extern solver_setInfo]
                                                                                                                                                                                                                                                                                                                                            opaque cvc5.Solver.setInfo (solver : Solver) (keyword value : String) :

                                                                                                                                                                                                                                                                                                                                            Set info.

                                                                                                                                                                                                                                                                                                                                            (set-info <attribute>)
                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                            • keyword: The info flag.
                                                                                                                                                                                                                                                                                                                                            • value: The value of the info flag.
                                                                                                                                                                                                                                                                                                                                            @[extern solver_setLogic]
                                                                                                                                                                                                                                                                                                                                            opaque cvc5.Solver.setLogic (solver : Solver) (logic : String) :

                                                                                                                                                                                                                                                                                                                                            Set logic.

                                                                                                                                                                                                                                                                                                                                            • logic: The logic to set.
                                                                                                                                                                                                                                                                                                                                            @[extern solver_isLogicSet]

                                                                                                                                                                                                                                                                                                                                            Determine if setLogic has been called.

                                                                                                                                                                                                                                                                                                                                            The logic previously set if any, none otherwise.

                                                                                                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                                                                                                                                              @[extern solver_getLogic]

                                                                                                                                                                                                                                                                                                                                              Get the logic set the solver.

                                                                                                                                                                                                                                                                                                                                              Asserts isLogicSet.

                                                                                                                                                                                                                                                                                                                                              @[extern solver_simplify]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.simplify (solver : Solver) (term : Term) (applySubs : Bool := 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 function may replace occurrences of x with 0.

                                                                                                                                                                                                                                                                                                                                              • t The term to simplify.
                                                                                                                                                                                                                                                                                                                                              • applySubs True to apply substitutions for solved variables.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_declareFun]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.declareFun (solver : Solver) (symbol : String) (sorts : Array «Sort») (sort : «Sort») (fresh : Bool := true) :

                                                                                                                                                                                                                                                                                                                                              Declare n-ary function symbol.

                                                                                                                                                                                                                                                                                                                                              SMT-LIB:

                                                                                                                                                                                                                                                                                                                                              \verbatim embed:rst:leading-asterisk .. code:: smtlib

                                                                                                                                                                                                                                                                                                                                               (declare-fun <symbol> ( <sort>* ) <sort>)
                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                              \endverbatim

                                                                                                                                                                                                                                                                                                                                              • 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.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_assertFormula]

                                                                                                                                                                                                                                                                                                                                              Assert a formula.

                                                                                                                                                                                                                                                                                                                                              • term: The formula to assert.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_checkSat]

                                                                                                                                                                                                                                                                                                                                              Check satisfiability.

                                                                                                                                                                                                                                                                                                                                              @[extern solver_checkSatAssuming]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.checkSatAssuming (solver : Solver) (assumptions : Array Term) :

                                                                                                                                                                                                                                                                                                                                              Check satisfiability assuming the given formulas.

                                                                                                                                                                                                                                                                                                                                              • assumptions: The formulas to assume.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_declareSort]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.declareSort (solver : Solver) (symbol : String) (arity : UInt32) (fresh : Bool := true) :

                                                                                                                                                                                                                                                                                                                                              Declare uninterpreted sort.

                                                                                                                                                                                                                                                                                                                                              (declare-sort <symbol> <numeral>)
                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                              • symbol: The name of the sort.
                                                                                                                                                                                                                                                                                                                                              • arity: The arity of the sort.
                                                                                                                                                                                                                                                                                                                                              • fresh: If true, then this function always returns a new sort. Otherwise, it will always return the same sort for each call with the given arity and symbol where fresh is false.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_defineFun]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.defineFun (solver : Solver) (symbol : String) (boundVars : Array Term) (sort : «Sort») (body : Term) (global : Bool := false) :

                                                                                                                                                                                                                                                                                                                                              Define n-ary function.

                                                                                                                                                                                                                                                                                                                                              (define-fun <function_def>)
                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                              • symbol: The name of the function.
                                                                                                                                                                                                                                                                                                                                              • boundVars: The parameters to this function.
                                                                                                                                                                                                                                                                                                                                              • sort: The sort of the return value of this function.
                                                                                                                                                                                                                                                                                                                                              • body: The function body.
                                                                                                                                                                                                                                                                                                                                              • global: Determines whether this definition is global (i.e. persists when popping the context).
                                                                                                                                                                                                                                                                                                                                              @[extern solver_defineFunRec]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.defineFunRec (solver : Solver) (symbol : String) (boundVars : Array Term) (sort : «Sort») (body : Term) (global : Bool := false) :

                                                                                                                                                                                                                                                                                                                                              Define recursive function.

                                                                                                                                                                                                                                                                                                                                              (define-fun-rec <function_def>)
                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                              • symbol: The name of the function.
                                                                                                                                                                                                                                                                                                                                              • boundVars: The parameters to this function.
                                                                                                                                                                                                                                                                                                                                              • sort: The sort of the return value of this function.
                                                                                                                                                                                                                                                                                                                                              • body: The function body.
                                                                                                                                                                                                                                                                                                                                              • global: Determines whether this definition is global (i.e. persists when popping the context).
                                                                                                                                                                                                                                                                                                                                              @[extern solver_defineFunRecTerm]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.defineFunRecTerm (solver : Solver) (fn : Term) (boundVars : Array Term) (body : Term) (global : Bool := false) :

                                                                                                                                                                                                                                                                                                                                              Define recursive function.

                                                                                                                                                                                                                                                                                                                                              (define-fun-rec <function_def>)
                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                              Create parameter fn with TermManager.mkConst.

                                                                                                                                                                                                                                                                                                                                              • fn: 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).
                                                                                                                                                                                                                                                                                                                                              @[extern solver_defineFunsRec]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.defineFunsRec (solver : Solver) (funs : Array Term) (boundVars : Array (Array Term)) (bodies : Array Term) (global : Bool := false) :

                                                                                                                                                                                                                                                                                                                                              Define recursive functions.

                                                                                                                                                                                                                                                                                                                                              (define-funs-rec
                                                                                                                                                                                                                                                                                                                                                ( <function_decl>_1 ... <function_decl>_n )
                                                                                                                                                                                                                                                                                                                                                (     <body>_1      ...     <body>_n      )
                                                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                              • funs: The sorted functions, each created with TermManager.mkConst.
                                                                                                                                                                                                                                                                                                                                              • boundVars: The list of parameters to the functions.
                                                                                                                                                                                                                                                                                                                                              • bodies: The list of function bodies of the functions.
                                                                                                                                                                                                                                                                                                                                              • global: Determines whether this definition is global (i.e. persists when popping the context).
                                                                                                                                                                                                                                                                                                                                              @[extern solver_getAssertions]

                                                                                                                                                                                                                                                                                                                                              Get the list of asserted formulas.

                                                                                                                                                                                                                                                                                                                                              (get-assertions)
                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                              @[extern solver_getInfo]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.getInfo (solver : Solver) (flag : String) :

                                                                                                                                                                                                                                                                                                                                              Get info from the solver.

                                                                                                                                                                                                                                                                                                                                              (get-info <info_flag>)
                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                              • flag: The info flag.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_getOption]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.getOption (solver : Solver) (option : String) :

                                                                                                                                                                                                                                                                                                                                              Get the value of a given option.

                                                                                                                                                                                                                                                                                                                                              (get-option <keyword>)
                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                              • option: The option for which the value is queried.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_getOptionNames]

                                                                                                                                                                                                                                                                                                                                              Get all option names that can be used with setOption, getOption, and getOptionInfo.

                                                                                                                                                                                                                                                                                                                                              @[extern solver_getUnsatAssumptions]

                                                                                                                                                                                                                                                                                                                                              Get the set of unsat (failed) assumptions.

                                                                                                                                                                                                                                                                                                                                              (get-unsat-assumptions)
                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                              Requires to enable option produce-unsat-assumption.

                                                                                                                                                                                                                                                                                                                                              @[extern solver_declareDatatype]

                                                                                                                                                                                                                                                                                                                                              Create datatype sort.

                                                                                                                                                                                                                                                                                                                                              (declare-datatype <symbol> <datatype_decl>)
                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                              • symbol: The name of the datatype sort.
                                                                                                                                                                                                                                                                                                                                              • ctors: The constructor declarations of the datatype sort.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_getUnsatCore]

                                                                                                                                                                                                                                                                                                                                              Get the unsatisfiable core.

                                                                                                                                                                                                                                                                                                                                              SMT-LIB:

                                                                                                                                                                                                                                                                                                                                              \verbatim embed:rst:leading-asterisk .. code:: smtlib

                                                                                                                                                                                                                                                                                                                                              (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.

                                                                                                                                                                                                                                                                                                                                              @[extern solver_getUnsatCoreLemmas]

                                                                                                                                                                                                                                                                                                                                              Get the lemmas used to derive unsatisfiability.

                                                                                                                                                                                                                                                                                                                                              (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.

                                                                                                                                                                                                                                                                                                                                              @[extern solver_getTimeoutCore]

                                                                                                                                                                                                                                                                                                                                              Get a timeout core.

                                                                                                                                                                                                                                                                                                                                              This function computes a subset of the current assertions that couse 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.

                                                                                                                                                                                                                                                                                                                                              (get-timeout-core)
                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                              Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                              @[extern solver_getTimeoutCoreAssuming]

                                                                                                                                                                                                                                                                                                                                              Get a timeout core of the given assumptions.

                                                                                                                                                                                                                                                                                                                                              This function computes a subset of the current assertions that couse a timeout when added to the current assertions 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 given assertions 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 assertions is empty.

                                                                                                                                                                                                                                                                                                                                              NB: this command does not require being preceeded by a call to checkSat.

                                                                                                                                                                                                                                                                                                                                              (get-timeout-core (<assert>*))
                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                              Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                              @[extern solver_getProof]

                                                                                                                                                                                                                                                                                                                                              Get a proof associated with the most recent call to checkSat.

                                                                                                                                                                                                                                                                                                                                              Requires to enable option produce-proofs.

                                                                                                                                                                                                                                                                                                                                              (get-proof :c)
                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                              NB: requires to enable option produce-proofs.

                                                                                                                                                                                                                                                                                                                                              Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                              • c: The component of the proof to return.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_getValue]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.getValue (solver : Solver) (term : Term) :

                                                                                                                                                                                                                                                                                                                                              Get the values of the given term in the current model.

                                                                                                                                                                                                                                                                                                                                              SMT-LIB:

                                                                                                                                                                                                                                                                                                                                              \verbatim embed:rst:leading-asterisk .. code:: smtlib

                                                                                                                                                                                                                                                                                                                                              (get-value ( <term>* ))
                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                              \endverbatim

                                                                                                                                                                                                                                                                                                                                              • terms: The term for which the value is queried.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_getValues]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.getValues (solver : Solver) (terms : Array Term) :

                                                                                                                                                                                                                                                                                                                                              Get the values of the given terms in the current model.

                                                                                                                                                                                                                                                                                                                                              SMT-LIB:

                                                                                                                                                                                                                                                                                                                                              \verbatim embed:rst:leading-asterisk .. code:: smtlib

                                                                                                                                                                                                                                                                                                                                              (get-value ( <term>* ))
                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                              \endverbatim

                                                                                                                                                                                                                                                                                                                                              • terms: The terms for which the values are queried.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_getModelDomainElements]

                                                                                                                                                                                                                                                                                                                                              Get the domain elements of an uninterpreted sort in the current model.

                                                                                                                                                                                                                                                                                                                                              The current model interprets the uninterpreted sort s as a finite sort whose domain elements are given in the return value of this function.

                                                                                                                                                                                                                                                                                                                                              • s: The uninterpreted sort in question.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_isModelCoreSymbol]

                                                                                                                                                                                                                                                                                                                                              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.

                                                                                                                                                                                                                                                                                                                                              • v: The term in question.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_getModel]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.getModel (solver : Solver) (sorts : Array «Sort») (consts : Array Term) :

                                                                                                                                                                                                                                                                                                                                              Get the model.

                                                                                                                                                                                                                                                                                                                                              (get-model)
                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                              Requires to enable option produce-models.

                                                                                                                                                                                                                                                                                                                                              Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                              • 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.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_getQuantifierElimination]

                                                                                                                                                                                                                                                                                                                                              Do quantifier elimination.

                                                                                                                                                                                                                                                                                                                                              (get-qe <q>)
                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                              NB: Quantifier elimination is only complete for logics such as LRA, LIA, and BV.

                                                                                                                                                                                                                                                                                                                                              Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                              • q: A quantified formula of the form QX_1 ... QX_n, P(x_1...x_i, y_1...y_j) where QX 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 Φ such that, given the current set of formulas A asserted to this solver:

                                                                                                                                                                                                                                                                                                                                              • (a ∧ Q) and (A ∧ Φ) are equivalent, and
                                                                                                                                                                                                                                                                                                                                              • Φ is a quantifier-free formula containing only free variables in y_1...y_n.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_getQuantifierEliminationDisjunct]

                                                                                                                                                                                                                                                                                                                                              Do partial quantifier elimination, which can be used for incrementally computing the result of a quantifier elimination.

                                                                                                                                                                                                                                                                                                                                              (get-qe-disjunct <q>)
                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                              NB: Quantifier elimination is only complete for logics such as LRA, LIA, and BV.

                                                                                                                                                                                                                                                                                                                                              Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                              • q: A quantified formula of the form QX_1 ... QX_n, P(x_1...x_i, y_1...y_j) where QX 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 Φ such that, given the current set of formulas A asserted to this solver:

                                                                                                                                                                                                                                                                                                                                              • A ∧ q → A ∧ Φ if Q is ∀, and A ∧ Φ → A ∧ q if Q is ∃;

                                                                                                                                                                                                                                                                                                                                              • Φ is a quantifier-free formula containing only free variables in y_1...y_n;

                                                                                                                                                                                                                                                                                                                                              • if Q is ∃, let A ∧ Q_n be the formula A ∧ ¬ (Φ ∧ Q_1) ∧ ... ∧ ¬ (Φ ∧ Q_n) where for each i ∈ [1, n], formula Φ ∧ Q_i is the result of calling getQuantifierEliminationDisjunct for q with the set of assertions A ∧ Q_{i-1}.

                                                                                                                                                                                                                                                                                                                                                Similarly, if Q is ∀, then let A ∧ Q_n be A ∧ (Φ ∧ Q_1) ∧ ... ∧ (Φ ∧ Q_n) where Φ ∧ Q_i is the same as above.

                                                                                                                                                                                                                                                                                                                                                In either case, we have that Φ ∧ Q_j will eventually be true or false, for some finite j.

                                                                                                                                                                                                                                                                                                                                              @[extern solver_declareSepHeap]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.declareSepHeap (solver : Solver) (locSort dataSort : «Sort») :

                                                                                                                                                                                                                                                                                                                                              When using separation logic, 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.

                                                                                                                                                                                                                                                                                                                                              • locSort: The location sort of the heap.
                                                                                                                                                                                                                                                                                                                                              • dataSort: The data sort of the heap.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_getValueSepHeap]

                                                                                                                                                                                                                                                                                                                                              When using separation logic, obtain the term for the heap.

                                                                                                                                                                                                                                                                                                                                              Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                              @[extern solver_getValueSepNil]

                                                                                                                                                                                                                                                                                                                                              When using separation logic, obtain the term for nil.

                                                                                                                                                                                                                                                                                                                                              Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                              @[extern solver_declarePool]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.declarePool (solver : Solver) (symbol : String) (sort : «Sort») (initValue : Array Term) :

                                                                                                                                                                                                                                                                                                                                              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 Kind.INST_POOL

                                                                                                                                                                                                                                                                                                                                              (declare-pool <symbol> <sort> ( <term>* ))
                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                              Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                              • symbol: The name of the pool.
                                                                                                                                                                                                                                                                                                                                              • sort: The sort of the elements of the pool.
                                                                                                                                                                                                                                                                                                                                              • initValue The initial value of the pool.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_declareOracleFun]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.declareOracleFun (solver : Solver) (symbol : String) (sorts : Array «Sort») (sort : «Sort») (fn : Array Term → Env Term) :

                                                                                                                                                                                                                                                                                                                                              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.

                                                                                                                                                                                                                                                                                                                                              • 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.

                                                                                                                                                                                                                                                                                                                                              TODO #

                                                                                                                                                                                                                                                                                                                                              Causes the tests to crash in a very weird way, see cvc5Test/Unit/ApiSolverOracleFun.lean.

                                                                                                                                                                                                                                                                                                                                              @[extern solver_pop]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.pop (solver : Solver) (nscopes : UInt32 := 1) :

                                                                                                                                                                                                                                                                                                                                              Pop (a) level(s) from the assertion stack.

                                                                                                                                                                                                                                                                                                                                              (pop <numeral>)
                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                              • nscopes: The number of levels to pop.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_getInterpolantSimple]

                                                                                                                                                                                                                                                                                                                                              Get an interpolant if one exists, the null term otherwise.

                                                                                                                                                                                                                                                                                                                                              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.

                                                                                                                                                                                                                                                                                                                                              (get-interpolant <symbol> <conj>)
                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                              NB: in SMT-LIB, <symbol> assigns a symbol to the interpolant.

                                                                                                                                                                                                                                                                                                                                              NB: Requires option produce-interpolants to be set to a mode different from none.

                                                                                                                                                                                                                                                                                                                                              Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                              • conj: The conjecture term.
                                                                                                                                                                                                                                                                                                                                              @[extern solver_getInterpolantOfGrammar]
                                                                                                                                                                                                                                                                                                                                              opaque cvc5.Solver.getInterpolantOfGrammar (solver : Solver) (conj : Term) (grammar : Grammar) :

                                                                                                                                                                                                                                                                                                                                              Get an interpolant if one exists, the null term otherwise.

                                                                                                                                                                                                                                                                                                                                              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. I is constructed from the given grammar. A is the current set of assertions and B is the conjecture, given as conj.

                                                                                                                                                                                                                                                                                                                                              (get-interpolant <symbol> <conj> <grammar>)
                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                              NB: in SMT-LIB, <symbol> assigns a symbol to the interpolant.

                                                                                                                                                                                                                                                                                                                                              NB: Requires option produce-interpolants to be set to a mode different from none.

                                                                                                                                                                                                                                                                                                                                              Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                              • conj: The conjecture term.
                                                                                                                                                                                                                                                                                                                                              • grammar: The grammar for the interpolant I.
                                                                                                                                                                                                                                                                                                                                              def cvc5.Solver.getInterpolant (solver : Solver) (conj : Term) (grammar : Option Grammar := none) :

                                                                                                                                                                                                                                                                                                                                              Get an interpolant if one exists, the null term otherwise.

                                                                                                                                                                                                                                                                                                                                              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. If a grammar G is provided, I is constructed from G. A is the current set of assertions and B is the conjecture, given as conj.

                                                                                                                                                                                                                                                                                                                                              (get-interpolant <symbol> <conj>)
                                                                                                                                                                                                                                                                                                                                              (get-interpolant <symbol> <conj> <grammar>)
                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                              NB: in SMT-LIB, <symbol> assigns a symbol to the interpolant.

                                                                                                                                                                                                                                                                                                                                              NB: Requires option produce-interpolants to be set to a mode different from none.

                                                                                                                                                                                                                                                                                                                                              Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                              • conj: The conjecture term.
                                                                                                                                                                                                                                                                                                                                              • grammar: The optional grammar for the interpolant I.
                                                                                                                                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                                                                                                                                                @[extern solver_getInterpolantNext]

                                                                                                                                                                                                                                                                                                                                                Get the next interpolant if any, the null term otherwise.

                                                                                                                                                                                                                                                                                                                                                Can only be called immediately after a successful call to getInterpolant, getInterpolantOfGrammar, getInterpolant?, getInterpolantNext, or getInterpolantNext. It is guaranteed to produce a syntactically different interpolant w.r.t. the last returned interpolant if successful.

                                                                                                                                                                                                                                                                                                                                                (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 → I and I → B and 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.

                                                                                                                                                                                                                                                                                                                                                @[extern solver_getAbductOfGrammar]
                                                                                                                                                                                                                                                                                                                                                opaque cvc5.Solver.getAbductOfGrammar (solver : Solver) (conj : Term) (grammar : Grammar) :

                                                                                                                                                                                                                                                                                                                                                Get an abduct if one exists, the null term otherwise.

                                                                                                                                                                                                                                                                                                                                                (get-abduct <conj> <grammar>)
                                                                                                                                                                                                                                                                                                                                                

                                                                                                                                                                                                                                                                                                                                                NB: Requires to enable option produce-abducts.

                                                                                                                                                                                                                                                                                                                                                Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                                • 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.

                                                                                                                                                                                                                                                                                                                                                def cvc5.Solver.getAbduct (solver : Solver) (conj : Term) (grammar : Option Grammar := none) :

                                                                                                                                                                                                                                                                                                                                                Get an abduct if one exists.

                                                                                                                                                                                                                                                                                                                                                (get-abduct <conj>)
                                                                                                                                                                                                                                                                                                                                                (get-abduct <conj> <grammar>)
                                                                                                                                                                                                                                                                                                                                                

                                                                                                                                                                                                                                                                                                                                                NB: Requires to enable option produce-abducts.

                                                                                                                                                                                                                                                                                                                                                Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                                • conj: The conjecture term.
                                                                                                                                                                                                                                                                                                                                                • grammar: The optional 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.

                                                                                                                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                                                                                                                                  @[extern solver_getAbductNext]

                                                                                                                                                                                                                                                                                                                                                  Get the next interpolant if any, the null term otherwise.

                                                                                                                                                                                                                                                                                                                                                  Can only be called immediately after a successful call to getAbduct, getAbductOfGrammar, getAbduct?, getAbductNext, or getAbductNext?. It is guaranteed to produce a syntactically different abduct w.r.t. the last returned abduct if successful.

                                                                                                                                                                                                                                                                                                                                                  (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 ∧ 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 the last call to a getAbduct-like function, or the null term if such a term cannot be found.

                                                                                                                                                                                                                                                                                                                                                  @[extern solver_blockModel]

                                                                                                                                                                                                                                                                                                                                                  Block the current model. Can be called only if immediately preceded by a SAT or INVALID query.

                                                                                                                                                                                                                                                                                                                                                  (block-model)
                                                                                                                                                                                                                                                                                                                                                  

                                                                                                                                                                                                                                                                                                                                                  NB: requires enabling option produce-models.

                                                                                                                                                                                                                                                                                                                                                  Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                                  • mode: The mode to use for blocking.
                                                                                                                                                                                                                                                                                                                                                  @[extern solver_blockModelValues]
                                                                                                                                                                                                                                                                                                                                                  opaque cvc5.Solver.blockModelValues (solver : Solver) (terms : Array Term) :

                                                                                                                                                                                                                                                                                                                                                  Block the current model values of (at least) the values in terms.

                                                                                                                                                                                                                                                                                                                                                  Can be called only if immediately preceded by a SAT query.

                                                                                                                                                                                                                                                                                                                                                  (block-model-values ( <term>+ ))
                                                                                                                                                                                                                                                                                                                                                  

                                                                                                                                                                                                                                                                                                                                                  NB: requires enabling option produce-models.

                                                                                                                                                                                                                                                                                                                                                  Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                                  • terms: The model values to block.
                                                                                                                                                                                                                                                                                                                                                  @[extern solver_getInstantiations]

                                                                                                                                                                                                                                                                                                                                                  Produce a string containing information about all instantiations made by the quantifier module.

                                                                                                                                                                                                                                                                                                                                                  Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                                  @[extern solver_proofToString]

                                                                                                                                                                                                                                                                                                                                                  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.

                                                                                                                                                                                                                                                                                                                                                  • proof: A proof, usually obtained from getProof.
                                                                                                                                                                                                                                                                                                                                                  • format: The proof format used to print the proof. Must be ProofFormat.NONE if the proof is from a component other than ProofComponent.FULL.
                                                                                                                                                                                                                                                                                                                                                  @[extern solver_getLearnedLiterals]

                                                                                                                                                                                                                                                                                                                                                  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.

                                                                                                                                                                                                                                                                                                                                                  • t: The type of learned literals to return.
                                                                                                                                                                                                                                                                                                                                                  @[extern solver_mkGrammar]
                                                                                                                                                                                                                                                                                                                                                  opaque cvc5.Solver.mkGrammar :
                                                                                                                                                                                                                                                                                                                                                  Solver → (boundVars ntSymbols : Array Term) → Env Grammar

                                                                                                                                                                                                                                                                                                                                                  Create a Sygus grammar.

                                                                                                                                                                                                                                                                                                                                                  The first non-terminal is treated as the starting non-terminal, so the order of non-terminals matters.

                                                                                                                                                                                                                                                                                                                                                  • boundVars The parameters to corresponding synth-fun/synth-inv.
                                                                                                                                                                                                                                                                                                                                                  • ntSymbols The pre-declaration of the non-terminal symbols.
                                                                                                                                                                                                                                                                                                                                                  def cvc5.Solver.synthFun (solver : Solver) (symbol : String) (boundVars : Array Term) (sort : «Sort») (grammar : Option Grammar := none) :

                                                                                                                                                                                                                                                                                                                                                  Synthesizes an n-ary function with optional syntactic constraints to verify.

                                                                                                                                                                                                                                                                                                                                                  (synth-fun <symbol> ( <boundVars>* ) <sort>)
                                                                                                                                                                                                                                                                                                                                                  (synth-fun <symbol> ( <boundVars>* ) <sort> <grammar>)
                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                  • symbol The name of the function.
                                                                                                                                                                                                                                                                                                                                                  • boundVars The parameters to this function.
                                                                                                                                                                                                                                                                                                                                                  • sort The sort of the return value of this function.
                                                                                                                                                                                                                                                                                                                                                  • grammar The optional syntactic constraints.
                                                                                                                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                                                                                                                                                    @[extern solver_declareSygusVar]
                                                                                                                                                                                                                                                                                                                                                    opaque cvc5.Solver.declareSygusVar :
                                                                                                                                                                                                                                                                                                                                                    Solver → (symbol : String) → (sort : «Sort») → Env Term

                                                                                                                                                                                                                                                                                                                                                    Append \p symbol to the current list of universal variables.

                                                                                                                                                                                                                                                                                                                                                    SyGuS v2:

                                                                                                                                                                                                                                                                                                                                                    (declare-var <symbol> <sort>)
                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                    • sort The sort of the universal variable.
                                                                                                                                                                                                                                                                                                                                                    • symbol The name of the universal variable.
                                                                                                                                                                                                                                                                                                                                                    @[extern solver_addSygusConstraint]

                                                                                                                                                                                                                                                                                                                                                    Add a forumla to the set of Sygus constraints.

                                                                                                                                                                                                                                                                                                                                                    SyGuS v2:

                                                                                                                                                                                                                                                                                                                                                    (constraint <term>)
                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                    • term The formula to add as a constraint.
                                                                                                                                                                                                                                                                                                                                                    @[extern solver_getSygusConstraints]

                                                                                                                                                                                                                                                                                                                                                    Get the list of sygus constraints.

                                                                                                                                                                                                                                                                                                                                                    @[extern solver_addSygusAssume]
                                                                                                                                                                                                                                                                                                                                                    opaque cvc5.Solver.addSygusAssume :
                                                                                                                                                                                                                                                                                                                                                    Solver → (term : Term) → Env Unit

                                                                                                                                                                                                                                                                                                                                                    Add a forumla to the set of Sygus assumptions.

                                                                                                                                                                                                                                                                                                                                                    SyGuS v2:

                                                                                                                                                                                                                                                                                                                                                    (assume <term>)
                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                    • term The formula to add as an assumption.
                                                                                                                                                                                                                                                                                                                                                    @[extern solver_getSygusAssumptions]

                                                                                                                                                                                                                                                                                                                                                    Get the list of sygus assumptions.

                                                                                                                                                                                                                                                                                                                                                    @[extern solver_addSygusInvConstraint]
                                                                                                                                                                                                                                                                                                                                                    opaque cvc5.Solver.addSygusInvConstraint :
                                                                                                                                                                                                                                                                                                                                                    Solver → (inv pre trans post : Term) → Env Unit

                                                                                                                                                                                                                                                                                                                                                    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>)
                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                    • inv The function-to-synthesize.
                                                                                                                                                                                                                                                                                                                                                    • pre The pre-condition.
                                                                                                                                                                                                                                                                                                                                                    • trans The transition relation.
                                                                                                                                                                                                                                                                                                                                                    • post The post-condition.
                                                                                                                                                                                                                                                                                                                                                    @[extern solver_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.

                                                                                                                                                                                                                                                                                                                                                    @[extern solver_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-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.

                                                                                                                                                                                                                                                                                                                                                    @[extern solver_getSynthSolution]

                                                                                                                                                                                                                                                                                                                                                    Get the synthesis solution of the given term.

                                                                                                                                                                                                                                                                                                                                                    This function should be called immediately after the solver answers unsat for sygus input.

                                                                                                                                                                                                                                                                                                                                                    • term The term for which the synthesis solution is queried.
                                                                                                                                                                                                                                                                                                                                                    @[extern solver_getSynthSolutions]

                                                                                                                                                                                                                                                                                                                                                    Get the synthesis solutions of the given terms.

                                                                                                                                                                                                                                                                                                                                                    This function should be called immediately after the solver answers unsat for sygus input.

                                                                                                                                                                                                                                                                                                                                                    • terms The terms for which the synthesis solutions is queried.
                                                                                                                                                                                                                                                                                                                                                    def cvc5.Solver.findSynth (solver : Solver) (fst : FindSynthTarget) (grammar : Option Grammar := none) :

                                                                                                                                                                                                                                                                                                                                                    Find a target term of interest using sygus enumeration with an optional grammar.

                                                                                                                                                                                                                                                                                                                                                    SyGuS v2:

                                                                                                                                                                                                                                                                                                                                                    (find-synth)
                                                                                                                                                                                                                                                                                                                                                    (find-synth :target G)
                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                    • fst The identifier specifying what kind of term to find.
                                                                                                                                                                                                                                                                                                                                                    • grammar The optional grammar for the term. If none, 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.

                                                                                                                                                                                                                                                                                                                                                    Returns the result of the find, which is the null term if the call failed.

                                                                                                                                                                                                                                                                                                                                                    Warning: this function is experimental and may change in future versions.

                                                                                                                                                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                                                                                                                                                      @[extern solver_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.

                                                                                                                                                                                                                                                                                                                                                      Warning: this function is experimental and may change in future versions.