CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph Class Reference

Collaboration diagram for CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph:

Collaboration graph
[legend]

List of all members.

Classes

Public Member Functions

Protected Types

Protected Member Functions

Protected Attributes


Detailed Description

Definition at line 456 of file theory_arith_old.h.


Member Typedef Documentation

typedef CDMap<Expr, EdgeInfo> CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::Graph [protected]

The graph itself, maps expressions (x-y) to the edge information

Definition at line 771 of file theory_arith_old.h.

typedef ExprMap<CDList<Expr>*> CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::EdgesList [protected]

Definition at line 776 of file theory_arith_old.h.


Constructor & Destructor Documentation

TheoryArithOld::DifferenceLogicGraph::DifferenceLogicGraph ( TheoryArithOld arith,
TheoryCore core,
ArithProofRules rules,
Context context 
)

Class constructor.

Definition at line 4724 of file theory_arith_old.cpp.

TheoryArithOld::DifferenceLogicGraph::~DifferenceLogicGraph (  ) 


Member Function Documentation

void TheoryArithOld::DifferenceLogicGraph::getEdgeTheorems ( const Expr x,
const Expr y,
const EdgeInfo edgeInfo,
std::vector< Theorem > &  outputTheorems 
)

TheoryArithOld::DifferenceLogicGraph::EpsRational TheoryArithOld::DifferenceLogicGraph::getEdgeWeight ( const Expr x,
const Expr y 
)

bool TheoryArithOld::DifferenceLogicGraph::hasIncoming ( const Expr x  ) 

bool TheoryArithOld::DifferenceLogicGraph::hasOutgoing ( const Expr x  ) 

TheoryArithOld::DifferenceLogicGraph::Graph::ElementReference TheoryArithOld::DifferenceLogicGraph::getEdge ( const Expr x,
const Expr y 
) [protected]

bool TheoryArithOld::DifferenceLogicGraph::tryUpdate ( const Expr x,
const Expr y,
const Expr z 
) [protected]

Try to update the shortest path from x to z using y.

Definition at line 4940 of file theory_arith_old.cpp.

References CVC3::ArithProofRules::addInequalities(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::analyseConflict(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::arith, CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::biggestEpsilon, CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::core, CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::d_pathLenghtThres, CVC3::TheoryCore::enqueueFact(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::existsEdge(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::getEdge(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::getEdgeTheorems(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::TheoryArithOld::DifferenceLogicGraph::EpsRational::getEpsilon(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::TheoryArithOld::DifferenceLogicGraph::EpsRational::getRational(), CVC3::Expr::getType(), CVC3::ArithProofRules::implyEqualities(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::TheoryArithOld::DifferenceLogicGraph::EdgeInfo::in_path_vertex, CVC3::TheoryArith::intType(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::TheoryArithOld::DifferenceLogicGraph::EdgeInfo::isDefined(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::TheoryArithOld::DifferenceLogicGraph::EpsRational::isInteger(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::isUnsat(), CVC3::LE, CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::TheoryArithOld::DifferenceLogicGraph::EdgeInfo::length, CVC3::TheoryCore::okToEnqueue(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::TheoryArithOld::DifferenceLogicGraph::EdgeInfo::path_length_in_edges, CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::rules, CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::smallestPathDifference, CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::sourceVertex, CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::TheoryArithOld::DifferenceLogicGraph::EpsRational::toString(), CVC3::Expr::toString(), CVC3::TRACE, CVC3::TheoryArithOld::tryPropagate(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::varInCycle, and CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::TheoryArithOld::DifferenceLogicGraph::EpsRational::Zero.

Referenced by CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::addEdge().

void TheoryArithOld::DifferenceLogicGraph::writeGraph ( std::ostream &  out  ) 

void TheoryArithOld::DifferenceLogicGraph::getVariables ( std::vector< Expr > &  variables  ) 

void CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::setRules ( ArithProofRules rules  )  [inline]

Definition at line 806 of file theory_arith_old.h.

Referenced by CVC3::TheoryArithOld::TheoryArithOld().

void CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::setArith ( TheoryArithOld arith  )  [inline]

Definition at line 810 of file theory_arith_old.h.

Referenced by CVC3::TheoryArithOld::TheoryArithOld().

Theorem TheoryArithOld::DifferenceLogicGraph::getUnsatTheorem (  ) 

Returns the reference to the unsat theorem if there is a negative cycle in the graph.

Returns:
the unsat theorem

Definition at line 4737 of file theory_arith_old.cpp.

References CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::unsat_theorem.

Referenced by CVC3::TheoryArithOld::addToBuffer(), and CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::isUnsat().

bool TheoryArithOld::DifferenceLogicGraph::isUnsat (  ) 

void TheoryArithOld::DifferenceLogicGraph::computeModel (  ) 

Rational TheoryArithOld::DifferenceLogicGraph::getValuation ( const Expr x  ) 

void TheoryArithOld::DifferenceLogicGraph::addEdge ( const Expr x,
const Expr y,
const Rational c,
const Theorem edge_thm 
)

Adds an edge corresponding to the constraint x - y <= c.

Parameters:
x variable x::Difference
y variable y
c rational c
kind the kind of inequality (LE or LT)
edge_thm the theorem for this edge

Definition at line 4801 of file theory_arith_old.cpp.

References CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::arith, CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::biggestEpsilon, CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::core, DebugAssert, CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::existsEdge(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::TheoryArithOld::DifferenceLogicGraph::EdgeInfo::explanation, CVC3::Theory::find(), CVC3::CDOmap< Key, Data, HashFcn >::get(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::getEdge(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::TheoryArithOld::DifferenceLogicGraph::EpsRational::getEpsilon(), CVC3::Theorem::getExpr(), CVC3::Expr::getKind(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::TheoryArithOld::DifferenceLogicGraph::EpsRational::getRational(), CVC3::Theorem::getRHS(), CVC3::Expr::hasFind(), IF_DEBUG, CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::incomingEdges, CVC3::int2string(), CVC3::Theorem::isAssump(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::TheoryArithOld::DifferenceLogicGraph::EdgeInfo::isDefined(), CVC3::Theorem::isNull(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::isUnsat(), CVC3::LE, CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::TheoryArithOld::DifferenceLogicGraph::EdgeInfo::length, CVC3::LT, CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::outgoingEdges, CVC3::TheoryCore::outOfResources(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::TheoryArithOld::DifferenceLogicGraph::EdgeInfo::path_length_in_edges, CVC3::CDList< T >::size(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::smallestPathDifference, CVC3::Expr::toString(), CVC3::TRACE, CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::tryUpdate(), CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::varInCycle, and CVC3::TheoryArithOld::zero.

Referenced by CVC3::TheoryArithOld::addToBuffer(), and CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::computeModel().

bool TheoryArithOld::DifferenceLogicGraph::existsEdge ( const Expr x,
const Expr y 
)

bool TheoryArithOld::DifferenceLogicGraph::inCycle ( const Expr x  ) 

void TheoryArithOld::DifferenceLogicGraph::expandSharedTerm ( const Expr x  ) 

Given a shared integer term expand it into the gray shadow on the bounds (if bounded from both sides).

Definition at line 5033 of file theory_arith_old.cpp.

void TheoryArithOld::DifferenceLogicGraph::analyseConflict ( const Expr x,
int  kind 
) [protected]


Member Data Documentation

const int* CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::d_pathLenghtThres [protected]

Threshold on path length to process (ignore bigger than and set incomplete)

Definition at line 750 of file theory_arith_old.h.

Referenced by CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::tryUpdate().

TheoryArithOld* CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::arith [protected]

TheoryCore* CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::core [protected]

ArithProofRules* CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::rules [protected]

CDO<Theorem> CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::unsat_theorem [protected]

CDO<Rational> CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::biggestEpsilon [protected]

CDO<Rational> CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::smallestPathDifference [protected]

Graph CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::leGraph [protected]

EdgesList CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::incomingEdges [protected]

EdgesList CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::outgoingEdges [protected]

CDMap<Expr, bool> CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::varInCycle [protected]

Expr CVC3::TheoryArithOld::TheoryArithOld::DifferenceLogicGraph::sourceVertex [protected]


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

Generated on Thu Oct 15 22:21:49 2009 for CVC3 by  doxygen 1.5.8