symbolic
derived_predicate.h
1 
10 #ifndef SYMBOLIC_DERIVED_PREDICATE_H_
11 #define SYMBOLIC_DERIVED_PREDICATE_H_
12 
13 #include "symbolic/action.h"
14 
15 namespace VAL {
16 
17 class derivation_rule;
18 
19 } // namespace VAL
20 
21 namespace symbolic {
22 
23 class DerivedPredicate : public Action {
24  public:
25  DerivedPredicate(const Pddl& pddl, const VAL::derivation_rule* symbol);
26 
27  const VAL::derivation_rule* symbol() const { return symbol_; }
28 
29  const VAL::effect_lists* postconditions() const = delete;
30 
31  bool Apply(State* state) const;
32 
33  State Apply(const State& state, const std::vector<Object>& arguments) const = delete;
34 
35  bool Apply(const std::vector<Object>& arguments, State* state) const = delete;
36 
37  static State Apply(const State& state, const std::vector<DerivedPredicate>& predicates);
38 
39  static bool Apply(const std::vector<DerivedPredicate>& predicates, State* state);
40 
41  private:
42  const VAL::derivation_rule* symbol_;
43 };
44 
45 } // namespace symbolic
46 
47 #endif // SYMBOLIC_DERIVED_PREDICATE_H_
VAL
Definition: pddl.cc:27
symbolic
Definition: action.cc:329
symbolic::DerivedPredicate
Definition: derived_predicate.h:23
symbolic::Pddl
Definition: pddl.h:40
symbolic::Action
Definition: action.h:36
symbolic::State
Definition: state.h:40