Clingo
Loading...
Searching...
No Matches
unpool.hh
1#pragma once
2
3#include <clingo/input/rewrite.hh>
4
5namespace CppClingo::Input {
6
9
11[[nodiscard]] auto unpool(RewriteContext &ctx, Term const &term) -> std::optional<std::vector<Term>>;
12
14[[nodiscard]] auto unpool(RewriteContext &ctx, Lit const &lit) -> std::optional<std::vector<Lit>>;
15
17[[nodiscard]] auto unpool(RewriteContext &ctx, HdLit const &lit) -> std::optional<std::vector<HdLit>>;
18
20[[nodiscard]] auto unpool(RewriteContext &ctx, BdLit const &lit) -> std::optional<std::vector<BdLit>>;
21
23[[nodiscard]] auto unpool(RewriteContext &ctx, Stm const &stm) -> std::optional<StmVec>;
24
26
27} // namespace CppClingo::Input
Helper to pass arguments to rewrite functions.
Definition rewrite_context.hh:97
std::variant< BdLitSimple, BdLitConjunction, BdLitAggregate, BdLitSetAggregate, BdLitTheoryAtom > BdLit
A body literal.
Definition body_literal.hh:116
std::variant< HdLitSimple, HdLitDisjunction, HdLitAggregate, HdLitSetAggregate, HdLitTheoryAtom > HdLit
A head literal.
Definition head_literal.hh:130
std::variant< LitBool, LitComparison, LitSymbolic > Lit
Variant holding the different literal types.
Definition literal.hh:129
auto unpool(RewriteContext &ctx, Term const &term) -> std::optional< std::vector< Term > >
Remove all pooled arguments from the term.
std::variant< StmRule, StmTheory, StmOptimize, StmWeakConstraint, StmShow, StmShowNothing, StmShowSig, StmProject, StmProjectSig, StmDefined, StmExternal, StmEdge, StmHeuristic, StmScript, StmInclude, StmProgram, StmConst, StmParts, StmComment > Stm
Variant of available statements.
Definition statement.hh:828
std::variant< TermVariable, TermSymbol, TermTuple, TermFunction, TermAbs, TermUnary, TermBinary > Term
Variant holding the different term types.
Definition term.hh:45