Clingo
Loading...
Searching...
No Matches
CppClingo::Ground::StateCondLit Class Reference

State to capture a set of conditional literals. More...

#include <condlit.hh>

Inheritance diagram for CppClingo::Ground::StateCondLit:
CppClingo::Ground::State

Public Member Functions

 StateCondLit (std::pmr::monotonic_buffer_resource &mbr, VariableVec local, VariableVec global, size_t index, bool has_conclusion, bool sp_premise, bool domain)
 Construct an empty state.
 
void vars (VariableSet &res, bool all) const
 Get the variables occurring in the conditional literal.
 
auto vars (bool all) const -> VariableSet
 Get the variables occurring in the conditional literal.
 
auto vars_global () const -> VariableVec const &
 Get the global variables of the literal.
 
auto vars_local () const -> VariableVec const &
 Get the local variables of the literal.
 
auto index () const -> size_t
 Get the update index of the conditional literal.
 
auto add_empty (Assignment const &ass) -> std::pair< MapAtomCondLit::iterator, bool >
 Add a new cond lit atom.
 
auto add_premise (EvalContext const &ctx, ULitVec const &premise) -> bool
 Add a new cond lit element with the given premise.
 
void add_conclusion (Assignment const &ass, MapAtomCondLit::iterator it, size_t conclusion, bool fact)
 Add a conclusion to an element.
 
auto propagate () -> bool
 Propagate enqueued conditional literals whose elements are not blocked.
 
auto domain () const -> bool
 Return true if all contained literals are domain.
 
auto base_empty () -> BaseCondLitEmpty &
 Get the base containing all conditional literals encountered during grounding.
 
auto base_premise () -> BaseCondLitPremise &
 Get the base containing all premises of conditional literals.
 
auto base_lit () -> BaseCondLit &
 Get the base containing all conditional literals that have been derived.
 
auto atom_find (Assignment const &ass) -> MapAtomCondLit::iterator
 Find an atom given an assignment and return an iterator to it.
 
auto atom_index (Assignment const &ass) -> std::optional< size_t >
 Find an atom given an assignment and return its index.
 
auto atom_index (MapAtomCondLit::const_iterator it) const -> size_t
 Turn an iterator into an atom index.
 
auto atom_nth (size_t index) -> MapAtomCondLit::iterator
 Turn an atom index into an iterator.
 
auto atom_is_fact (MapAtomCondLit::iterator it) -> bool
 Check if the given atom is a fact.
 
auto elem_find (Assignment const &ass, MapAtomCondLit::iterator it) -> MapElemCondLit::iterator
 Get an iterator to an element given an assignment.
 
auto elem_index (MapElemCondLit::const_iterator it) const -> size_t
 Turn an iterator into an element index.
 
void output (Logger &log, SymbolStore &store, OutputStm &out) override
 Output the now complete conditional literal.
 
- Public Member Functions inherited from CppClingo::Ground::State
virtual ~State ()=default
 Destructor.
 

Detailed Description

State to capture a set of conditional literals.

Member Function Documentation

◆ add_premise()

auto CppClingo::Ground::StateCondLit::add_premise ( EvalContext const &  ctx,
ULitVec const &  premise 
) -> bool

Add a new cond lit element with the given premise.

If the function returns false the corresponding conditional literal is false.

◆ atom_find()

auto CppClingo::Ground::StateCondLit::atom_find ( Assignment const &  ass) -> MapAtomCondLit::iterator

Find an atom given an assignment and return an iterator to it.

Assumes that all global variables are bound. Returns an end iterator if the atom does not exist.

◆ atom_index()

auto CppClingo::Ground::StateCondLit::atom_index ( Assignment const &  ass) -> std::optional< size_t >

Find an atom given an assignment and return its index.

Assumes that all global variables are bound.

◆ atom_is_fact()

auto CppClingo::Ground::StateCondLit::atom_is_fact ( MapAtomCondLit::iterator  it) -> bool

Check if the given atom is a fact.

Note that it is not sufficient to check the fact state of the atom.

◆ base_lit()

auto CppClingo::Ground::StateCondLit::base_lit ( ) -> BaseCondLit &

Get the base containing all conditional literals that have been derived.

This is a subset of the empty base.

◆ elem_find()

auto CppClingo::Ground::StateCondLit::elem_find ( Assignment const &  ass,
MapAtomCondLit::iterator  it 
) -> MapElemCondLit::iterator

Get an iterator to an element given an assignment.

Assumes that the given atom iterator points to a valid atom and all local and global variables are bound. Returns an end iterator if the atom does not exist.

◆ output()

void CppClingo::Ground::StateCondLit::output ( Logger log,
SymbolStore store,
OutputStm out 
)
overridevirtual

Output the now complete conditional literal.

Implements CppClingo::Ground::State.


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