class Tensai::Pddl::AtomicFormula

Atomic formula in a planning domain

Public Class Methods

new(predicate, terms) click to toggle source
Calls superclass method
# File lib/tensai/pddl/atomic_formula.rb, line 18
def initialize(predicate, terms)
  super predicate, terms

  raise ArgumentError, 'Unknown Terms' if terms.keys.any? { |k| !predicate.variables.key?(k) }

  predicate.variables.each do |var|
    self.terms[var.name] = var unless terms.key? var.name
  end
  self.terms.freeze
end

Public Instance Methods

bind(values) click to toggle source
# File lib/tensai/pddl/atomic_formula.rb, line 29
def bind(values)
  AtomicFormula.new(predicate, terms.merge(values))
end