cprover
Loading...
Searching...
No Matches
std_expr.cpp File Reference
#include "std_expr.h"
#include "arith_tools.h"
#include "config.h"
#include "expr_util.h"
#include "fixedbv.h"
#include "ieee_float.h"
#include "mathematical_types.h"
#include "namespace.h"
#include "pointer_expr.h"
#include "range.h"
#include "rational.h"
#include "rational_tools.h"
#include "substitute_symbols.h"
#include <map>
Include dependency graph for std_expr.cpp:

Go to the source code of this file.

Functions

bool operator== (const exprt &lhs, bool rhs)
 Return whether the expression lhs is a constant of Boolean type that is representing the Boolean value rhs.
bool operator!= (const exprt &lhs, bool rhs)
 Return whether the expression lhs is not a constant of Boolean type or is not representing the Boolean value rhs.
bool operator== (const exprt &lhs, int rhs)
 Return whether the expression lhs is a constant representing the numeric value rhs; only values 0 and 1 are supported for rhs.
bool operator!= (const exprt &lhs, int rhs)
 Returns the negation of operator==(const exprt &, int).
bool operator== (const exprt &lhs, std::nullptr_t rhs)
 Return whether the expression lhs is a constant representing the NULL pointer.
bool operator!= (const exprt &lhs, std::nullptr_t rhs)
 Returns the negation of operator==(const exprt &, std::nullptr_t).
exprt disjunction (const exprt::operandst &op)
 1) generates a disjunction for two or more operands 2) for one operand, returns the operand 3) returns false otherwise
exprt conjunction (exprt a, exprt b)
 Conjunction of two expressions.
exprt conjunction (const exprt::operandst &op)
 1) generates a conjunction for two or more operands 2) for one operand, returns the operand 3) returns true otherwise
template<typename T>
auto component (T &struct_expr, const irep_idt &name, const namespacet &ns) -> decltype(struct_expr.op0())

Function Documentation

◆ component()

template<typename T>
auto component ( T & struct_expr,
const irep_idt & name,
const namespacet & ns )->decltype(struct_expr.op0())

Definition at line 291 of file std_expr.cpp.

◆ conjunction() [1/2]

exprt conjunction ( const exprt::operandst & op)

1) generates a conjunction for two or more operands 2) for one operand, returns the operand 3) returns true otherwise

Definition at line 275 of file std_expr.cpp.

◆ conjunction() [2/2]

exprt conjunction ( exprt a,
exprt b )

Conjunction of two expressions.

If the second is already an and_exprt add to its operands instead of creating a new expression. If one is true, return the other expression. If one is false returns false.

Definition at line 252 of file std_expr.cpp.

◆ disjunction()

exprt disjunction ( const exprt::operandst & op)

1) generates a disjunction for two or more operands 2) for one operand, returns the operand 3) returns false otherwise

Definition at line 240 of file std_expr.cpp.

◆ operator!=() [1/3]

bool operator!= ( const exprt & lhs,
bool rhs )

Return whether the expression lhs is not a constant of Boolean type or is not representing the Boolean value rhs.

Definition at line 37 of file std_expr.cpp.

◆ operator!=() [2/3]

bool operator!= ( const exprt & lhs,
int rhs )

Returns the negation of operator==(const exprt &, int).

Definition at line 60 of file std_expr.cpp.

◆ operator!=() [3/3]

bool operator!= ( const exprt & lhs,
std::nullptr_t rhs )

Returns the negation of operator==(const exprt &, std::nullptr_t).

Definition at line 192 of file std_expr.cpp.

◆ operator==() [1/3]

bool operator== ( const exprt & lhs,
bool rhs )

Return whether the expression lhs is a constant of Boolean type that is representing the Boolean value rhs.

Definition at line 32 of file std_expr.cpp.

◆ operator==() [2/3]

bool operator== ( const exprt & lhs,
int rhs )

Return whether the expression lhs is a constant representing the numeric value rhs; only values 0 and 1 are supported for rhs.

For value 0 we consider the following types: ID_integer, ID_natural, ID_rational, ID_unsignedbv, ID_signedbv, ID_c_bool, ID_c_bit_field, ID_fixedbv, ID_floatbv, ID_pointer.
For ID_pointer, returns true iff the value is a zero string or a null pointer.
For value 1 we consider the following types: ID_integer, ID_natural, ID_rational, ID_unsignedbv, ID_signedbv, ID_c_bool, ID_c_bit_field, ID_fixedbv, ID_floatbv.
For all other types, return false.

Definition at line 52 of file std_expr.cpp.

◆ operator==() [3/3]

bool operator== ( const exprt & lhs,
std::nullptr_t rhs )

Return whether the expression lhs is a constant representing the NULL pointer.

Definition at line 186 of file std_expr.cpp.