|
| PrgAtom (uint32 id, bool checkScc=true) |
|
uint32 | scc () const |
| Strongly connected component of this node. More...
|
|
Literal | eqGoal (bool sign) const |
| If eq(), stores the literal that is eq to this atom. More...
|
|
bool | inDisj () const |
| Returns true if atom belongs to a disjunctive head. More...
|
|
|
dep_iterator | deps_begin () const |
|
dep_iterator | deps_end () const |
|
bool | hasDep (Dependency d) const |
|
void | addDep (Var bodyId, bool pos) |
|
void | removeDep (Var bodyId, bool pos) |
|
void | clearDeps (Dependency d) |
|
|
Low-level implementation functions. Use with care and only if you know what you are doing!
|
void | setEqGoal (Literal x) |
|
bool | propagateValue (LogicProgram &prg, bool backprop) |
|
bool | addConstraints (const LogicProgram &prg, ClauseCreator &c) |
|
void | setScc (uint32 scc) |
|
void | setState (State s) |
|
bool | inUpper () const |
| Is the head part of the (simplified) program? More...
|
|
bool | isAtom () const |
| Is this head an atom? More...
|
|
uint32 | supports () const |
| Number of supports (rules) for this head. More...
|
|
sup_iterator | supps_begin () const |
|
sup_iterator | supps_end () const |
|
bool | frozen () const |
| Defined in a later incremental step? More...
|
|
bool | inFlux () const |
| Thawed in this step? More...
|
|
Literal | assumption () const |
|
State | state () const |
|
void | addSupport (PrgEdge r) |
| Adds r as support edge for this node. More...
|
|
void | addSupport (PrgEdge r, Simplify s) |
|
void | removeSupport (PrgEdge r) |
| Removes r from the head's list of supports. More...
|
|
void | clearSupports () |
|
void | clearSupports (EdgeVec &to) |
|
bool | simplifySupports (LogicProgram &prg, bool strong, uint32 *numDiffSupps=0) |
| Removes any superfluous/irrelevant supports. More...
|
|
bool | assignValue (ValueRep v) |
| Assigns the value v to this head. More...
|
|
void | setInUpper (bool b) |
|
void | markDirty () |
|
void | assignVar (LogicProgram &prg, PrgEdge it) |
|
| PrgNode (uint32 id, bool checkScc=true) |
| Creates a new node that corresponds to a literal that is false. More...
|
|
bool | relevant () const |
| Is the node still relevant or removed() resp. eq()? More...
|
|
bool | removed () const |
| Was the node removed? More...
|
|
bool | ignoreScc () const |
| Ignore the node during scc checking? More...
|
|
bool | eq () const |
| Returns true if this node is equivalent to some other node. More...
|
|
bool | seen () const |
|
bool | hasVar () const |
| Returns true if node has an associated variable in a solver. More...
|
|
Var | var () const |
| Returns the variable associated with this node or sentVar if no var is associated with this node. More...
|
|
Literal | literal () const |
| Returns the literal associated with this node or a sentinel literal if no var is associated with this node. More...
|
|
ValueRep | value () const |
| Returns the value currently assigned to this node. More...
|
|
uint32 | id () const |
| Returns the current id of this node. More...
|
|
Literal | trueLit () const |
| Returns the literal that must be true in order to fulfill the truth-value of this node. More...
|
|
void | setLiteral (Literal x) |
|
void | clearLiteral (bool clVal) |
|
void | setValue (ValueRep v) |
|
void | setEq (uint32 eqId) |
|
void | setIgnoreScc (bool b) |
|
void | markRemoved () |
|
void | markSeen (bool b) |
|
void | resetId (uint32 id, bool seen) |
|
bool | assignValueImpl (ValueRep v, bool noWeak) |
|
An atom in a logic program.
An atom stores the list of bodies depending on it. Furthermore, once strongly-connected components are identified, atoms store their SCC-number. All trivial SCCs are represented with the special SCC-number PrgNode::noScc.