File: op.rst

package info (click to toggle)
cvc5 1.3.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 87,260 kB
  • sloc: cpp: 383,850; java: 12,207; python: 12,090; sh: 5,679; ansic: 4,729; lisp: 763; perl: 208; makefile: 38
file content (41 lines) | stat: -rw-r--r-- 1,435 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Op
==

This class encapsulates a cvc5 operator. A :cpp:class:`cvc5::Op` is a term that
represents an operator, instantiated with the parameters it requires (if any).

A :cpp:class:`cvc5::Term` of operator kind that does not require additional
parameters, e.g., :cpp:enumerator:`cvc5::Kind::ADD`, is usually constructed via
:cpp:func:`cvc5::Solver::mkTerm(Kind kind, const std::vector\<Term>& children) <Term cvc5::Solver::mkTerm(Kind kind, const std::vector\<Term>& children) const>`.
Alternatively, any :cpp:class:`cvc5::Term` can be constructed via first
instantiating a corresponding :cpp:class:`cvc5::Op`, even if the operator does
not require additional parameters.
Terms with operators that require additional parameters, e.g.,
:cpp:enumerator:`cvc5::Kind::BITVECTOR_EXTRACT`, must be created via
:cpp:func:`cvc5::TermManager::mkOp()` and
:cpp:func:`cvc5::TermManager::mkTerm(const Op& op, const std::vector\<Term>& children) <Term cvc5::TermManager::mkTerm(const Op& op, const std::vector\<Term>& children)>`.


----

- class :cpp:class:`cvc5::Op`
- :cpp:func:`std::ostream& cvc5::operator<< (std::ostream& out, const Op& op)`
- :cpp:struct:`std::hash\<cvc5::Op>`

----

.. doxygenclass:: cvc5::Op
    :project: cvc5
    :members:

----

.. doxygenfunction:: cvc5::operator<<(std::ostream& out, const Op& op)
    :project: cvc5

----

.. doxygenstruct:: std::hash< cvc5::Op >
    :project: std
    :members:
    :undoc-members: