Clingo
Loading...
Searching...
No Matches

Data structures and functions to ground literals. More...

Classes

class  CppClingo::Ground::Lit
 The base class for groundable literals. More...
 
class  CppClingo::Ground::LitComparison
 A literal representing a comparison. More...
 
class  CppClingo::Ground::LitExternal
 A literal representing a comparison. More...
 
class  CppClingo::Ground::LitInterval
 A literal representing an interval assignment. More...
 
class  CppClingo::Ground::LitSymbolic
 A symbolic literal. More...
 
class  CppClingo::Ground::LitProject
 A literal similar to a symbolic literal. More...
 
class  CppClingo::Ground::LitTuple
 An auxiliary literal binding variables to the given symbols upon first match. More...
 
class  CppClingo::Ground::LitCheck
 A literal ensuring that a list of terms evaluates. More...
 
class  CppClingo::Ground::LitBool
 A literal representing a Boolean. More...
 
class  CppClingo::Ground::LitFactCheck
 Simple literal that discards whenever it matches to a fact. More...
 
class  CppClingo::Ground::LitFailCheck
 A literal ensuring that a list of terms evaluates. More...
 
class  CppClingo::Ground::LitSimpleAggr
 An aggregate literal without conditions. More...
 

Typedefs

using CppClingo::Ground::ULit = std::unique_ptr< Lit >
 A unique pointer holding a literal.
 
using CppClingo::Ground::ULitVec = std::vector< ULit >
 A vector of literals.
 
using CppClingo::Ground::AtomSimple = std::optional< std::tuple< Ground::UTerm, AtomBase &, std::vector< size_t > > >
 Represents a simple head literal which is either represented by a symbol term or #false captured by std::nullopt.
 
using CppClingo::Ground::BaseVec = std::vector< std::tuple< std::tuple< String, size_t, bool >, AtomBase *, std::vector< size_t > > >
 A vector of signatures, bases, and indices.
 

Enumerations

enum class  CppClingo::Ground::VarSelectMode : uint8_t { VarSelectMode::depend = 1 , VarSelectMode::provide = 2 , VarSelectMode::all = 3 }
 Available variable selection modes. More...
 

Variables

constexpr auto CppClingo::Ground::stratified_index = std::numeric_limits<size_t>::max()
 Marker for stratified literals.
 

Detailed Description

Data structures and functions to ground literals.

Typedef Documentation

◆ BaseVec

using CppClingo::Ground::BaseVec = typedef std::vector<std::tuple<std::tuple<String, size_t, bool>, AtomBase *, std::vector<size_t> >>

A vector of signatures, bases, and indices.

Whenever a base has an update, its indices have to be propagated. The base is identified by the signature and the vector sorted by this signature.

Enumeration Type Documentation

◆ VarSelectMode

enum class CppClingo::Ground::VarSelectMode : uint8_t
strong

Available variable selection modes.

Enumerator
depend 

Get variables a literal depends on.

provide 

Get variables provided by a literal.

all 

Get all variables in a literal.