CVC3::Expr Class Reference

Expr class for CVC3 compatibility layer. More...

`#include <cvc3_compat.h>`

Inheritance diagram for CVC3::Expr:
[legend]
Collaboration diagram for CVC3::Expr:
[legend]

## Public Types

typedef CVC4::Expr::const_iterator | iterator
typedef expr::ExprSetDepth | setdepth
| IOStream manipulator to set the maximum depth of Exprs when pretty-printing.
typedef expr::ExprPrintTypes | printtypes
| IOStream manipulator to print type ascriptions or not.
typedef expr::ExprDag | dag
| IOStream manipulator to print expressions as a DAG (or not).
typedef expr::ExprSetLanguage | setlanguage
| IOStream manipulator to set the output language for Exprs.

## Public Member Functions

| Expr ()
| Expr (const Expr &e)
| Expr (const CVC4::Expr &e)
| Expr (CVC4::Kind k)
Expr | eqExpr (const Expr &right) const
Expr | notExpr () const
Expr | negate () const
Expr | andExpr (const Expr &right) const
Expr | orExpr (const Expr &right) const
Expr | iteExpr (const Expr &thenpart, const Expr &elsepart) const
Expr | iffExpr (const Expr &right) const
Expr | impExpr (const Expr &right) const
Expr | xorExpr (const Expr &right) const
Expr | substExpr (const std::vector< Expr > &oldTerms, const std::vector< Expr > &newTerms) const
Expr | substExpr (const ExprHashMap< Expr > &oldToNew) const
Expr | operator! () const
Expr | operator&& (const Expr &right) const
Expr | operator|| (const Expr &right) const
size_t | hash () const
bool | isFalse () const
bool | isTrue () const
bool | isBoolConst () const
bool | isVar () const
bool | isBoundVar () const
bool | isString () const
bool | isSymbol () const
bool | isTerm () const
bool | isType () const
bool | isClosure () const
bool | isQuantifier () const
bool | isForall () const
bool | isExists () const
bool | isLambda () const
bool | isApply () const
bool | isTheorem () const
bool | isConstant () const
bool | isRawList () const
bool | isAtomic () const
bool | isAtomicFormula () const
bool | isAbsAtomicFormula () const
bool | isLiteral () const
bool | isAbsLiteral () const
bool | isBoolConnective () const
bool | isPropLiteral () const
bool | isPropAtom () const
std::string | getName () const
std::string | getUid () const
std::string | getString () const
std::vector< Expr > | getVars () const
Expr | getExistential () const
int | getBoundIndex () const
Expr | getBody () const
Theorem | getTheorem () const
bool | isEq () const
bool | isNot () const
bool | isAnd () const
bool | isOr () const
bool | isITE () const
bool | isIff () const
bool | isImpl () const
bool | isXor () const
bool | isRational () const
bool | isSkolem () const
const Rational & | getRational () const
Op | mkOp () const
Op | getOp () const
Expr | getOpExpr () const
int | getOpKind () const
Expr | getExpr () const
std::vector< std::vector< Expr > > | getTriggers () const
| Get the manual triggers of the closure Expr.
ExprManager * | getEM () const
std::vector< Expr > | getKids () const
ExprIndex | getIndex () const
int | arity () const
Expr | operator[] (int i) const
Expr | unnegate () const
| Remove leading NOT if any.
bool | isInitialized () const
Type | getType () const
| Get the type. Recursively compute if necessary.
Type | lookupType () const
| Look up the current type. Do not recursively compute (i.e. may be NULL)
void | pprint () const
| Pretty-print the expression.
void | pprintnodag () const
| Pretty-print without dagifying.
bool | operator== (const Expr &e) const
| Syntactic comparison operator.
bool | operator!= (const Expr &e) const
| Syntactic disequality operator.
bool | operator< (const Expr &e) const
| Order comparison operator.
bool | operator> (const Expr &e) const
| Order comparison operator.
bool | operator<= (const Expr &e) const
| Order comparison operator.
bool | operator>= (const Expr &e) const
| Order comparison operator.
unsigned long | getId () const
| Get the ID of this expression (used for the comparison operators).
Kind | getKind () const
| Returns the kind of the expression (AND, PLUS ...).
size_t | getNumChildren () const
| Returns the number of children of this expression.
Expr | operator[] (unsigned i) const
| Returns the i'th child of this expression.
std::vector< Expr > | getChildren () const
| Returns the children of this Expr.
Expr | andExpr (const Expr &e) const
| Returns the conjunction of this expression and the given expression.
Expr | orExpr (const Expr &e) const
| Returns the disjunction of this expression and the given expression.
Expr | xorExpr (const Expr &e) const
| Returns the exclusive disjunction of this expression and the given expression.
Expr | iffExpr (const Expr &e) const
| Returns the Boolean equivalence of this expression and the given expression.
Expr | impExpr (const Expr &e) const
| Returns the implication of this expression and the given expression.
Expr | iteExpr (const Expr &then_e, const Expr &else_e) const
| Returns the if-then-else expression with this expression as the Boolean condition and the given expressions as the "then" and "else" expressions.
const_iterator | begin () const
| Returns an iterator to the first child of this Expr.
const_iterator | end () const
| Returns an iterator to one-off-the-last child of this Expr.
bool | hasOperator () const
| Check if this is an expression that has an operator.
Expr | getOperator () const
| Get the operator of this expression.
Type | getType (bool check=false) const throw (TypeCheckingException)
| Get the type for this Expr and optionally do type checking.
Expr | substitute (Expr e, Expr replacement) const
| Substitute "replacement" in for "e".
Expr | substitute (const std::vector< Expr > exes, const std::vector< Expr > &replacements) const
| Substitute "replacements" in for "exes".
Expr | substitute (const std::hash_map< Expr, Expr, ExprHashFunction > map) const
| Substitute pairs of (ex,replacement) from the given map.
std::string | toString () const
| Returns the string representation of the expression.
void | toStream (std::ostream &out, int toDepth=-1, bool types=false, size_t dag=1, OutputLanguage language=language::output::LANG_AUTO) const
| Outputs the string representation of the expression to the stream.
bool | isNull () const
| Check if this is a null expression.
bool | isVariable () const
| Check if this is an expression representing a variable.
bool | isConst () const
| Check if this is an expression representing a constant.
template<class T >
const T & | getConst () const
| Extract a constant of type T.
template<>
bool const & | getConst () const
ExprManager * | getExprManager () const
| Returns the expression reponsible for this expression.
Expr | exportTo (ExprManager *exprManager, ExprManagerMapCollection &variableMap, uint32_t flags=0) const
| Maps this Expr into one for a different ExprManager, using variableMap for the translation and extending it with any new mappings.
void | printAst (std::ostream &out, int indent=0) const
| Very basic pretty printer for Expr.

## Static Public Member Functions

static size_t | hash (const Expr &e)

## Detailed Description

Expr class for CVC3 compatibility layer.

This class is identical to (and convertible to/from) a CVC4 Expr, except that a few additional functions are supported to provide naming compatibility with CVC3.

Definition at line 319 of file cvc3_compat.h.

## Member Typedef Documentation

## dag

typedef expr::ExprDag CVC4::Expr::dag

inherited

IOStream manipulator to print expressions as a DAG (or not).

Definition at line 610 of file expr.h.

## iterator

typedef CVC4::Expr::const_iterator CVC3::Expr::iterator

Definition at line 321 of file cvc3_compat.h.

## printtypes

typedef expr::ExprPrintTypes CVC4::Expr::printtypes

inherited

IOStream manipulator to print type ascriptions or not.

// let a, b, c, and d be variables of sort U Expr e = em->mkExpr(OR, a, b, em->mkExpr(AND, c, em->mkExpr(NOT, d))) out << printtypes(true) << e;

gives "(OR a:U b:U (AND c:U (NOT d:U)))", but

out << printtypes(false) << [same expr as above]

gives "(OR a b (AND c (NOT d)))"

Definition at line 605 of file expr.h.

## setdepth

typedef expr::ExprSetDepth CVC4::Expr::setdepth

inherited

IOStream manipulator to set the maximum depth of Exprs when pretty-printing.

-1 means print to any depth. E.g.:

// let a, b, c, and d be VARIABLEs Expr e = em->mkExpr(OR, a, b, em->mkExpr(AND, c, em->mkExpr(NOT, d))) out << setdepth(3) << e;

gives "(OR a b (AND c (NOT d)))", but

out << setdepth(1) << [same expr as above]

gives "(OR a b (...))"

Definition at line 590 of file expr.h.

## setlanguage

typedef expr::ExprSetLanguage CVC4::Expr::setlanguage

inherited

IOStream manipulator to set the output language for Exprs.

Definition at line 615 of file expr.h.

## Constructor & Destructor Documentation

## Expr() [1/4]

CVC3::Expr::Expr | ( |  | ) |

## Expr() [2/4]

CVC3::Expr::Expr | ( | const Expr & | e | ) |

## Expr() [3/4]

CVC3::Expr::Expr | ( | const CVC4::Expr & | e | ) |

## Expr() [4/4]

CVC3::Expr::Expr | ( | CVC4::Kind | k | ) |

## Member Function Documentation

## andExpr() [1/2]

Expr CVC3::Expr::andExpr | ( | const Expr & | right | ) | const

## andExpr() [2/2]

Expr CVC4::Expr::andExpr | ( | const Expr & | e | ) | const

inherited

Returns the conjunction of this expression and the given expression.

## arity()

int CVC3::Expr::arity | ( |  | ) | const

## begin()

const_iterator CVC4::Expr::begin | ( |  | ) | const

inherited

Returns an iterator to the first child of this Expr.

## end()

const_iterator CVC4::Expr::end | ( |  | ) | const

inherited

Returns an iterator to one-off-the-last child of this Expr.

## eqExpr()

Expr CVC3::Expr::eqExpr | ( | const Expr & | right | ) | const

## exportTo()

Expr CVC4::Expr::exportTo | ( | ExprManager * | exprManager,
|  | ExprManagerMapCollection & | variableMap,
|  | uint32_t | flags = 0 ) const

inherited

Maps this Expr into one for a different ExprManager, using variableMap for the translation and extending it with any new mappings.

Referenced by CVC4::Command::ExportTransformer::operator()().

## getBody()

Expr CVC3::Expr::getBody | ( |  | ) | const

## getBoundIndex()

int CVC3::Expr::getBoundIndex | ( |  | ) | const

## getChildren()

std::vector< Expr > CVC4::Expr::getChildren | ( |  | ) | const

inlineinherited

Returns the children of this Expr.

Definition at line 366 of file expr.h.

## getConst() [1/2]

template<class T >

const T & CVC4::Expr::getConst | ( |  | ) | const

inherited

Extract a constant of type T.

## getConst() [2/2]

template<>

bool const & CVC4::Expr::getConst | ( |  | ) | const

inherited

## getEM()

ExprManager * CVC3::Expr::getEM | ( |  | ) | const

## getExistential()

Expr CVC3::Expr::getExistential | ( |  | ) | const

## getExpr()

Expr CVC3::Expr::getExpr | ( |  | ) | const

## getExprManager()

ExprManager * CVC4::Expr::getExprManager | ( |  | ) | const

inherited

Returns the expression reponsible for this expression.

## getId()

unsigned long CVC4::Expr::getId | ( |  | ) | const

inherited

Get the ID of this expression (used for the comparison operators).

Returns
  an identifier uniquely identifying the value this expression holds.

Referenced by CVC4::ExprHashFunction::operator()().

## getIndex()

ExprIndex CVC3::Expr::getIndex | ( |  | ) | const

## getKids()

std::vector< Expr > CVC3::Expr::getKids | ( |  | ) | const

## getKind()

Kind CVC4::Expr::getKind | ( |  | ) | const

inherited

Returns the kind of the expression (AND, PLUS ...).

Returns
  the kind of the expression

## getName()

std::string CVC3::Expr::getName | ( |  | ) | const

## getNumChildren()

size_t CVC4::Expr::getNumChildren | ( |  | ) | const

inherited

Returns the number of children of this expression.

Returns
  the number of children

## getOp()

Op CVC3::Expr::getOp | ( |  | ) | const

## getOperator()

Expr CVC4::Expr::getOperator | ( |  | ) | const

inherited

Get the operator of this expression.

Exceptions

  IllegalArgumentException | if it has no operator

Returns
  the operator of this expression

## getOpExpr()

Expr CVC3::Expr::getOpExpr | ( |  | ) | const

## getOpKind()

int CVC3::Expr::getOpKind | ( |  | ) | const

## getRational()

const Rational & CVC3::Expr::getRational | ( |  | ) | const

## getString()

std::string CVC3::Expr::getString | ( |  | ) | const

## getTheorem()

Theorem CVC3::Expr::getTheorem | ( |  | ) | const

## getTriggers()

std::vector< std::vector< Expr > > CVC3::Expr::getTriggers | ( |  | ) | const

Get the manual triggers of the closure Expr.

## getType() [1/2]

Type CVC3::Expr::getType | ( |  | ) | const

Get the type. Recursively compute if necessary.

## getType() [2/2]

Type CVC4::Expr::getType | ( | bool | check = false | ) | const
throw | ( | TypeCheckingException ) |  |  |

inherited

Get the type for this Expr and optionally do type checking.

Initial type computation will be near-constant time if type checking is not requested. Results are memoized, so that subsequent calls to getType() without type checking will be constant time.

Initial type checking is linear in the size of the expression. Again, the results are memoized, so that subsequent calls to getType(), with or without type checking, will be constant time.

NOTE: A TypeCheckingException can be thrown even when type checking is not requested. getType() will always return a valid and correct type and, thus, an exception will be thrown when no valid or correct type can be computed (e.g., if the arguments to a bit-vector operation aren't bit-vectors). When type checking is not requested, getType() will do the minimum amount of checking required to return a valid result.

Parameters

  check | whether we should check the type as we compute it (default: false)

## getUid()

std::string CVC3::Expr::getUid | ( |  | ) | const

## getVars()

std::vector< Expr > CVC3::Expr::getVars | ( |  | ) | const

## hash() [1/2]

size_t CVC3::Expr::hash | ( |  | ) | const

## hash() [2/2]

static size_t CVC3::Expr::hash | ( | const Expr & | e | ) |

static

## hasOperator()

bool CVC4::Expr::hasOperator | ( |  | ) | const

inherited

Check if this is an expression that has an operator.

Returns
  true if this expression has an operator

## iffExpr() [1/2]

Expr CVC3::Expr::iffExpr | ( | const Expr & | right | ) | const

## iffExpr() [2/2]

Expr CVC4::Expr::iffExpr | ( | const Expr & | e | ) | const

inherited

Returns the Boolean equivalence of this expression and the given expression.

## impExpr() [1/2]

Expr CVC3::Expr::impExpr | ( | const Expr & | right | ) | const

## impExpr() [2/2]

Expr CVC4::Expr::impExpr | ( | const Expr & | e | ) | const

inherited

Returns the implication of this expression and the given expression.

## isAbsAtomicFormula()

bool CVC3::Expr::isAbsAtomicFormula | ( |  | ) | const

## isAbsLiteral()

bool CVC3::Expr::isAbsLiteral | ( |  | ) | const

## isAnd()

bool CVC3::Expr::isAnd | ( |  | ) | const

## isApply()

bool CVC3::Expr::isApply | ( |  | ) | const

## isAtomic()

bool CVC3::Expr::isAtomic | ( |  | ) | const

## isAtomicFormula()

bool CVC3::Expr::isAtomicFormula | ( |  | ) | const

## isBoolConnective()

bool CVC3::Expr::isBoolConnective | ( |  | ) | const

## isBoolConst()

bool CVC3::Expr::isBoolConst | ( |  | ) | const

## isBoundVar()

bool CVC3::Expr::isBoundVar | ( |  | ) | const

## isClosure()

bool CVC3::Expr::isClosure | ( |  | ) | const

## isConst()

bool CVC4::Expr::isConst | ( |  | ) | const

inherited

Check if this is an expression representing a constant.

Returns
  true if a constant expression

## isConstant()

bool CVC3::Expr::isConstant | ( |  | ) | const

## isEq()

bool CVC3::Expr::isEq | ( |  | ) | const

## isExists()

bool CVC3::Expr::isExists | ( |  | ) | const

## isFalse()

bool CVC3::Expr::isFalse | ( |  | ) | const

## isForall()

bool CVC3::Expr::isForall | ( |  | ) | const

## isIff()

bool CVC3::Expr::isIff | ( |  | ) | const

## isImpl()

bool CVC3::Expr::isImpl | ( |  | ) | const

## isInitialized()

bool CVC3::Expr::isInitialized | ( |  | ) | const

## isITE()

bool CVC3::Expr::isITE | ( |  | ) | const

## isLambda()

bool CVC3::Expr::isLambda | ( |  | ) | const

## isLiteral()

bool CVC3::Expr::isLiteral | ( |  | ) | const

## isNot()

bool CVC3::Expr::isNot | ( |  | ) | const

## isNull()

bool CVC4::Expr::isNull | ( |  | ) | const

inherited

Check if this is a null expression.

Returns
  true if a null expression

Referenced by CVC4::DatatypeConstructor::isResolved().

## isOr()

bool CVC3::Expr::isOr | ( |  | ) | const

## isPropAtom()

bool CVC3::Expr::isPropAtom | ( |  | ) | const

## isPropLiteral()

bool CVC3::Expr::isPropLiteral | ( |  | ) | const

## isQuantifier()

bool CVC3::Expr::isQuantifier | ( |  | ) | const

## isRational()

bool CVC3::Expr::isRational | ( |  | ) | const

## isRawList()

bool CVC3::Expr::isRawList | ( |  | ) | const

## isSkolem()

bool CVC3::Expr::isSkolem | ( |  | ) | const

## isString()

bool CVC3::Expr::isString | ( |  | ) | const

## isSymbol()

bool CVC3::Expr::isSymbol | ( |  | ) | const

## isTerm()

bool CVC3::Expr::isTerm | ( |  | ) | const

## isTheorem()

bool CVC3::Expr::isTheorem | ( |  | ) | const

## isTrue()

bool CVC3::Expr::isTrue | ( |  | ) | const

## isType()

bool CVC3::Expr::isType | ( |  | ) | const

## isVar()

bool CVC3::Expr::isVar | ( |  | ) | const

## isVariable()

bool CVC4::Expr::isVariable | ( |  | ) | const

inherited

Check if this is an expression representing a variable.

Returns
  true if a variable expression

## isXor()

bool CVC3::Expr::isXor | ( |  | ) | const

## iteExpr() [1/2]

Expr CVC3::Expr::iteExpr | ( | const Expr & | thenpart,
|  | const Expr & | elsepart ) const

## iteExpr() [2/2]

Expr CVC4::Expr::iteExpr | ( | const Expr & | then_e,
|  | const Expr & | else_e ) const

inherited

Returns the if-then-else expression with this expression as the Boolean condition and the given expressions as the "then" and "else" expressions.

## lookupType()

Type CVC3::Expr::lookupType | ( |  | ) | const

Look up the current type. Do not recursively compute (i.e. may be NULL)

## mkOp()

Op CVC3::Expr::mkOp | ( |  | ) | const

## negate()

Expr CVC3::Expr::negate | ( |  | ) | const

## notExpr()

Expr CVC3::Expr::notExpr | ( |  | ) | const

## operator!()

Expr CVC3::Expr::operator! | ( |  | ) | const

## operator!=()

bool CVC4::Expr::operator!= | ( | const Expr & | e | ) | const

inherited

Syntactic disequality operator.

Parameters

  e | the expression to compare to

Returns
  true if expressions differ syntactically, false otherwise

## operator&&()

Expr CVC3::Expr::operator&& | ( | const Expr & | right | ) | const

## operator<()

bool CVC4::Expr::operator< | ( | const Expr & | e | ) | const

inherited

Order comparison operator.

The only invariant on the order of expressions is that the expressions that were created sooner will be smaller in the ordering than all the expressions created later. Null expression is the smallest element of the ordering. The behavior of the operator is undefined if the expressions come from two different expression managers.

Parameters

  e | the expression to compare to

Returns
  true if this expression is smaller than the given one

## operator<=()

bool CVC4::Expr::operator<= | ( | const Expr & | e | ) | const

inlineinherited

Order comparison operator.

The only invariant on the order of expressions is that the expressions that were created sooner will be smaller in the ordering than all the expressions created later. Null expression is the smallest element of the ordering. The behavior of the operator is undefined if the expressions come from two different expression managers.

Parameters

  e | the expression to compare to

Returns
  true if this expression is smaller or equal to the given one

Definition at line 319 of file expr.h.

## operator==()

bool CVC4::Expr::operator== | ( | const Expr & | e | ) | const

inherited

Syntactic comparison operator.

Returns true if expressions belong to the same expression manager and are syntactically identical.

Parameters

  e | the expression to compare to

Returns
  true if expressions are syntactically the same, false otherwise

## operator>()

bool CVC4::Expr::operator> | ( | const Expr & | e | ) | const

inherited

Order comparison operator.

The only invariant on the order of expressions is that the expressions that were created sooner will be smaller in the ordering than all the expressions created later. Null expression is the smallest element of the ordering. The behavior of the operator is undefined if the expressions come from two different expression managers.

Parameters

  e | the expression to compare to

Returns
  true if this expression is greater than the given one

## operator>=()

bool CVC4::Expr::operator>= | ( | const Expr & | e | ) | const

inlineinherited

Order comparison operator.

The only invariant on the order of expressions is that the expressions that were created sooner will be smaller in the ordering than all the expressions created later. Null expression is the smallest element of the ordering. The behavior of the operator is undefined if the expressions come from two different expression managers.

Parameters

  e | the expression to compare to

Returns
  true if this expression is greater or equal to the given one

Definition at line 331 of file expr.h.

## operator[]() [1/2]

Expr CVC3::Expr::operator[] | ( | int | i | ) | const

## operator[]() [2/2]

Expr CVC4::Expr::operator[] | ( | unsigned | i | ) | const

inherited

Returns the i'th child of this expression.

Parameters

  i | the index of the child to retrieve

Returns
  the child

## operator||()

Expr CVC3::Expr::operator|| | ( | const Expr & | right | ) | const

## orExpr() [1/2]

Expr CVC3::Expr::orExpr | ( | const Expr & | right | ) | const

## orExpr() [2/2]

Expr CVC4::Expr::orExpr | ( | const Expr & | e | ) | const

inherited

Returns the disjunction of this expression and the given expression.

## pprint()

void CVC3::Expr::pprint | ( |  | ) | const

Pretty-print the expression.

## pprintnodag()

void CVC3::Expr::pprintnodag | ( |  | ) | const

Pretty-print without dagifying.

## printAst()

void CVC4::Expr::printAst | ( | std::ostream & | out,
|  | int | indent = 0 ) const

inherited

Very basic pretty printer for Expr.

This is equivalent to calling e.getNode().printAst(...)

Parameters

  out | output stream to print to.
  indent | number of spaces to indent the formula by.

## substExpr() [1/2]

Expr CVC3::Expr::substExpr | ( | const ExprHashMap< Expr > & | oldToNew | ) | const

## substExpr() [2/2]

Expr CVC3::Expr::substExpr | ( | const std::vector< Expr > & | oldTerms,
|  | const std::vector< Expr > & | newTerms ) const

## substitute() [1/3]

Expr CVC4::Expr::substitute | ( | const std::hash_map< Expr, Expr, ExprHashFunction > | map | ) | const

inherited

Substitute pairs of (ex,replacement) from the given map.

## substitute() [2/3]

Expr CVC4::Expr::substitute | ( | const std::vector< Expr > | exes,
|  | const std::vector< Expr > & | replacements ) const

inherited

Substitute "replacements" in for "exes".

## substitute() [3/3]

Expr CVC4::Expr::substitute | ( | Expr | e,
|  | Expr | replacement ) const

inherited

Substitute "replacement" in for "e".

## toStream()

void CVC4::Expr::toStream | ( | std::ostream & | out,
|  | int | toDepth = -1,
|  | bool | types = false,
|  | size_t | dag = 1,
|  | OutputLanguage | language = language::output::LANG_AUTO ) const

inherited

Outputs the string representation of the expression to the stream.

Parameters

  out | the stream to serialize this expression to
  toDepth | the depth to which to print this expression, or -1 to print it fully
  types | set to true to ascribe types to the output expressions (might break language compliance, but good for debugging expressions)
  dag | the dagification threshold to use (0 == off)
  language | the language in which to output

## toString()

std::string CVC4::Expr::toString | ( |  | ) | const

inherited

Returns the string representation of the expression.

Returns
  a string representation of the expression

## unnegate()

Expr CVC3::Expr::unnegate | ( |  | ) | const

Remove leading NOT if any.

## xorExpr() [1/2]

Expr CVC3::Expr::xorExpr | ( | const Expr & | right | ) | const

## xorExpr() [2/2]

Expr CVC4::Expr::xorExpr | ( | const Expr & | e | ) | const

inherited

Returns the exclusive disjunction of this expression and the given expression.

The documentation for this class was generated from the following file:

- src/compat/cvc3_compat.h