CBMC
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
equalityt Class Reference

#include <equality.h>

+ Inheritance diagram for equalityt:
+ Collaboration diagram for equalityt:

Classes

struct   typestructt
 

Public Types

 
- Public Types inherited from prop_conv_solvert
 
typedef std::unordered_map< exprt, literalt, irep_hashcachet
 
- Public Types inherited from decision_proceduret
  Result of running the decision procedure. More...
 

Public Member Functions

  equalityt (propt &_prop, message_handlert &message_handler)
 
 
 
- Public Member Functions inherited from prop_conv_solvert
 
 
  Implementation of the decision procedure.
 
void  print_assignment (std::ostream &out) const override
  Print satisfying assignment to out.
 
  Return a textual description of the decision procedure.
 
  Return expr with variables replaced by values from satisfying assignment if available.
 
  Return value of literal l from satisfying assignment.
 
  Generate a handle, which is an expression that has the same value as the argument in any model that is generated; this offers an efficient way to refer to the expression in subsequent calls to get or set_to.
 
 
 
 
  Convert a Boolean expression and return the corresponding literal.
 
  Returns true if an expression is in the final conflict leading to UNSAT.
 
void  set_to (const exprt &expr, bool value) override
  For a Boolean expression expr, add the constraint 'current_context => expr' if value is true, otherwise add 'current_context => not expr'.
 
  Push a new context on the stack This context becomes a child context nested in the current context.
 
void  push (const std::vector< exprt > &assumptions) override
  Push assumptions in form of literal_exprt
 
  Pop whatever is on top of the stack.
 
 
 
 
  Set the limit for the solver to time out in seconds.
 
  Return the number of incremental solver calls.
 
 
- Public Member Functions inherited from conflict_providert
 
- Public Member Functions inherited from prop_convt
 
- Public Member Functions inherited from stack_decision_proceduret
 
- Public Member Functions inherited from decision_proceduret
  For a Boolean expression expr, add the constraint 'expr'.
 
  For a Boolean expression expr, add the constraint 'not expr'.
 
  Run the decision procedure to solve the problem This corresponds to SMT-LIB's check-sat.
 
resultt  operator() (const exprt &assumption)
  Run the decision procedure to solve the problem under the given assumption.
 
 
- Public Member Functions inherited from solver_resource_limitst
 

Protected Types

typedef std::unordered_map< const exprt, unsigned, irep_hashelementst
 
typedef std::map< std::pair< unsigned, unsigned >, literaltequalitiest
 
 
typedef std::unordered_map< const typet, typestructt, irep_hashtypemapt
 

Protected Member Functions

 
 
 
- Protected Member Functions inherited from prop_conv_solvert
virtual std::optional< boolget_bool (const exprt &expr) const
  Get a boolean value from the model if the formula is satisfiable.
 
 
 
 
 
 

Protected Attributes

 
- Protected Attributes inherited from prop_conv_solvert
 
 
 
proptprop
 
 
  Assumptions on the stack.
 
std::size_t  context_literal_counter = 0
  To generate unique literal names for contexts.
 
std::vector< size_tcontext_size_stack
  assumption_stack is segmented in contexts; Number of assumptions in each context on the stack
 

Additional Inherited Members

- Public Attributes inherited from prop_conv_solvert
 
 
 
- Static Protected Attributes inherited from prop_conv_solvert
static const charcontext_prefix = "prop_conv::context$"
 

Detailed Description

Definition at line 19 of file equality.h.

Member Typedef Documentation

◆  elements_revt

Definition at line 41 of file equality.h.

◆  elementst

protected

Definition at line 39 of file equality.h.

◆  equalitiest

protected

Definition at line 40 of file equality.h.

◆  SUB

Definition at line 29 of file equality.h.

◆  typemapt

protected

Definition at line 50 of file equality.h.

Constructor & Destructor Documentation

◆  equalityt()

equalityt::equalityt ( propt_prop,
message_handlertmessage_handler 
)
inline

Definition at line 22 of file equality.h.

Member Function Documentation

◆  add_equality_constraints() [1/2]

void equalityt::add_equality_constraints ( )
protectedvirtual

Definition at line 89 of file equality.cpp.

◆  add_equality_constraints() [2/2]

void equalityt::add_equality_constraints ( const typestructttypestruct )
protectedvirtual

Definition at line 96 of file equality.cpp.

◆  equality()

literalt equalityt::equality ( const exprte1,
const exprte2 
)
virtual

Definition at line 17 of file equality.cpp.

◆  equality2()

literalt equalityt::equality2 ( const exprte1,
const exprte2 
)
protectedvirtual

Definition at line 25 of file equality.cpp.

◆  finish_eager_conversion()

void equalityt::finish_eager_conversion ( )
inlineoverridevirtual

Reimplemented from prop_conv_solvert.

Definition at line 31 of file equality.h.

Member Data Documentation

◆  typemap

typemapt equalityt::typemap
protected

Definition at line 52 of file equality.h.


The documentation for this class was generated from the following files:
  • /home/runner/work/cbmc/cbmc/src/solvers/flattening/equality.h
  • /home/runner/work/cbmc/cbmc/src/solvers/flattening/equality.cpp

AltStyle によって変換されたページ (->オリジナル) /