Clingo
|
Extensible ground representation of disjunctions. More...
#include <disjunction.hh>
Public Member Functions | |
auto | is_fact () const -> bool |
Check if the disjunction is a fact. | |
void | mark_fact () |
Mark the disjunction as fact. | |
auto | enqueue () -> bool |
Enqueue the atom for propagation. | |
void | dequeue () |
Dequeue the atom after propagation. | |
void | add_elem (size_t idx) |
Add a new element. | |
auto | elems () const -> std::span< size_t const > |
Get the disjunction elements. | |
auto | todo () -> std::span< size_t const > |
Get the disjunction elements to propagate. | |
auto | uid () const -> std::optional< size_t > |
Get the unique id of the disjunction atom. | |
void | uid (size_t uid) |
Set the unique id of the disjunction atom. | |
Extensible ground representation of disjunctions.
Elements can be added to this representation and it can be enqueued for later propagation. Propagation derives not yet propagated head atoms as long as the disjunction is not marked as fact.
void CppClingo::Ground::AtomDisjunction::dequeue | ( | ) |
Dequeue the atom after propagation.
Also marks elements as propagated.