NAME

Logic::Relational::Goal - Base class for relational logic goals.

SYNOPSIS

package Logic::Relational::Goal::MyGoal;
use parent 'Logic::Relational::Goal';

DESCRIPTION

Logic::Relational::Goal defines the interface for all logic goals in the engine. Every goal must implement expand and freshen.

METHODS

expand

Abstract method. Evaluates the goal and returns a list of successor Logic::Relational::State objects.

freshen

Abstract method. Takes a variable mapping and returns a freshened copy of the goal.

is_ground

Abstract method. Checks if the goal is ground (contains no unbound variables) under the current substitution.

term_is_ground

Helper method to check if a term is ground under a substitution.