Development of PAL is no longer supported. See the

link to new language version:

Functional Action Language (FAL)


Pertinence Action Language


PAL is a causal language for describing action domains. There are two main parts in a PAL theory: the declarations part and the sentences. Declarations allow describing the sets of actions and fluents together with the set of rules that describe the domain behavior. Rule semantics relies on the concept of Pertinence (a rule can be applied iff its condition is true and directly or indirectly depends on the performed actions). The sentences allow initializing and updating an actual narrative (that is, describe the things that have actually happened) and making queries about the current narrative or a hypothetical future one.

Version 1.4.3:

How to use it: Some examples:
  1. Yale shooting scenario
  2. Example of ramifications: Lin's suitcase
  3. Concurrent actions: the soup bowl example, and a second version with intermediate fluents.
  4. A simple but large temporal projection problem: a binary counter of 1000 bits
  5. Missionaires and Cannibals (and a second version with more intermediate actions)
  6. Blocks world
  7. Implementations of a queue and a stack of processes
  8. Some cycles: abba0.pal, abba1.pal, abba2.pal, auto.pal
  9. Example of well founded based logic program encoded in pal.
  10. An example of pertinence: the scoring scenario