Skip to content

Fluents

Victor Mataré edited this page Dec 15, 2019 · 7 revisions

A fluent is an n-ary relational or functional symbol that can be changed by executing actions.

Definition

A fluent is defined by its signature, an initial configuration and an optional domain restriction.

Fluent Definition Example

Location fluent location(Object x) {
initially:
    (yellow_cup) = table;
    (green_cup) = table;
}

Here, Location and Object would typically be domains. The definition thus says that the objects yellow_cup and green_cup are initially at the location table. The initially: block can also take a general form:

bool fluent visited(symbol location) {
initially:
    (location) = false;
}

In this case, the fluent visited(location) is initially false for any location.

Clone this wiki locally