Interface ISymbolicAtomsModule
Inspection of atoms occurring in ground logic programs
Namespace: ClingoSharp.CoreServices.Interfaces.Modules
Assembly: ClingoSharp.CoreServices.dll
Syntax
public interface ISymbolicAtomsModule : IClingoModule
Methods
| Improve this Doc View SourceFind(SymbolicAtoms, Symbol, out SymbolicAtomIterator)
Find a symbolic atom given its symbolic representation.
Declaration
bool Find(SymbolicAtoms atoms, Symbol symbol, out SymbolicAtomIterator iterator)
Parameters
| Type | Name | Description |
|---|---|---|
| SymbolicAtoms | atoms | the target |
| Symbol | symbol | the symbol to lookup |
| SymbolicAtomIterator | iterator | iterator pointing to the symbolic atom or to the end of the sequence if no corresponding atom is found |
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
GetBeginIterator(SymbolicAtoms, Signature, out SymbolicAtomIterator)
Get a forward iterator to the beginning of the sequence of all symbolic atoms optionally restricted to a given signature.
Declaration
bool GetBeginIterator(SymbolicAtoms atoms, Signature signature, out SymbolicAtomIterator iterator)
Parameters
| Type | Name | Description |
|---|---|---|
| SymbolicAtoms | atoms | the target |
| Signature | signature | optional signature |
| SymbolicAtomIterator | iterator | the resulting iterator |
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
GetEndIterator(SymbolicAtoms, out SymbolicAtomIterator)
Iterator pointing to the end of the sequence of symbolic atoms.
Declaration
bool GetEndIterator(SymbolicAtoms atoms, out SymbolicAtomIterator iterator)
Parameters
| Type | Name | Description |
|---|---|---|
| SymbolicAtoms | atoms | the target |
| SymbolicAtomIterator | iterator | the resulting iterator |
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
GetLiteral(SymbolicAtoms, SymbolicAtomIterator, out Literal)
Returns the (numeric) aspif literal corresponding to the given symbolic atom.
Such a literal can be mapped to a solver literal (see the Theory Propagation module) or be used in rules in aspif format (see the Program Building module).
Declaration
bool GetLiteral(SymbolicAtoms atoms, SymbolicAtomIterator iterator, out Literal literal)
Parameters
| Type | Name | Description |
|---|---|---|
| SymbolicAtoms | atoms | the target |
| SymbolicAtomIterator | iterator | iterator to the atom |
| Literal | literal | the associated literal |
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
GetNext(SymbolicAtoms, SymbolicAtomIterator, out SymbolicAtomIterator)
Get an iterator to the next element in the sequence of symbolic atoms.
Declaration
bool GetNext(SymbolicAtoms atoms, SymbolicAtomIterator iterator, out SymbolicAtomIterator next)
Parameters
| Type | Name | Description |
|---|---|---|
| SymbolicAtoms | atoms | the target |
| SymbolicAtomIterator | iterator | the current iterator |
| SymbolicAtomIterator | next | the succeeding iterator |
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
GetSignatures(SymbolicAtoms, out Signature[])
Get the predicate signatures occurring in a logic program.
Declaration
bool GetSignatures(SymbolicAtoms atoms, out Signature[] signatures)
Parameters
| Type | Name | Description |
|---|---|---|
| SymbolicAtoms | atoms | the target |
| Signature[] | signatures | the resulting signatures |
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
GetSize(SymbolicAtoms, out UIntPtr)
Get the number of different atoms occurring in a logic program.
Declaration
bool GetSize(SymbolicAtoms atoms, out UIntPtr size)
Parameters
| Type | Name | Description |
|---|---|---|
| SymbolicAtoms | atoms | the target |
| System.UIntPtr | size | the number of atoms |
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
GetSymbol(SymbolicAtoms, SymbolicAtomIterator, out Symbol)
Check whether an atom is external.
An atom is external if it has been defined using an external directive and has not been released or defined by a rule.
Declaration
bool GetSymbol(SymbolicAtoms atoms, SymbolicAtomIterator iterator, out Symbol symbol)
Parameters
| Type | Name | Description |
|---|---|---|
| SymbolicAtoms | atoms | the target |
| SymbolicAtomIterator | iterator | iterator to the atom |
| Symbol | symbol | whether the atom is a external |
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
IsExternal(SymbolicAtoms, SymbolicAtomIterator, out Boolean)
Get the symbolic representation of an atom.
Declaration
bool IsExternal(SymbolicAtoms atoms, SymbolicAtomIterator iterator, out bool external)
Parameters
| Type | Name | Description |
|---|---|---|
| SymbolicAtoms | atoms | the target |
| SymbolicAtomIterator | iterator | iterator to the atom |
| System.Boolean | external | the resulting symbol |
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
IsFact(SymbolicAtoms, SymbolicAtomIterator, out Boolean)
Check whether an atom is a fact.
Declaration
bool IsFact(SymbolicAtoms atoms, SymbolicAtomIterator iterator, out bool fact)
Parameters
| Type | Name | Description |
|---|---|---|
| SymbolicAtoms | atoms | the target |
| SymbolicAtomIterator | iterator | iterator to the atom |
| System.Boolean | fact | whether the atom is a fact |
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
Remarks
This does not determine if an atom is a cautious consequence. The grounding or solving component's simplifications can only detect this in some cases.
IsValid(SymbolicAtoms, SymbolicAtomIterator, out Boolean)
Check whether the given iterator points to some element with the sequence of symbolic atoms or to the end of the sequence.
Declaration
bool IsValid(SymbolicAtoms atoms, SymbolicAtomIterator iterator, out bool valid)
Parameters
| Type | Name | Description |
|---|---|---|
| SymbolicAtoms | atoms | the target |
| SymbolicAtomIterator | iterator | the iterator |
| System.Boolean | valid | whether the iterator points to some element within the sequence |
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
IteratorIsEqualTo(SymbolicAtoms, SymbolicAtomIterator, SymbolicAtomIterator, out Boolean)
Check if two iterators point to the same element (or end of the sequence).
Declaration
bool IteratorIsEqualTo(SymbolicAtoms atoms, SymbolicAtomIterator iteratorA, SymbolicAtomIterator iteratorB, out bool equal)
Parameters
| Type | Name | Description |
|---|---|---|
| SymbolicAtoms | atoms | the target |
| SymbolicAtomIterator | iteratorA | the first iterator |
| SymbolicAtomIterator | iteratorB | the second iterator |
| System.Boolean | equal | whether the two iterators are equal |
Returns
| Type | Description |
|---|---|
| System.Boolean |
|