FASILL documentation Source fasill


This library provides predicates for running the FASILL interpreter.

FASILL reads the input until the first break line, analyzes the term and runs the goal. After the first answer, you can press the key (;) to find the next answer, or any other to end the search.

A command is a FASILL term preceded by the character (:).

  • :exit - exit FASILL.

  • :help - print this message.

  • :lattice(Path) - change lattice from file Path.

  • :license - print license message.

  • :listing - list the loaded rules.

  • :unfold(Id) - unfold the rule with identifier Id.

By default, FASILL incorporates a set of predefined lattices, and loads the lattice into the environment. You can change the current lattice with the command :lattice(Path). If Path is a term of the form library(Name) instead of a file path, FASILL finds in its predefined lattices:

  • :lattice(library(unit)) - reals in the unit interval with logics of product, Gödel and Łukasiewicz.

  • :lattice(library(bool)) - boolean values with classical operators.

You can directly run FASILL with a different lattice with the option fasill -lat <lattice>.


fasill_installation_path( ?Path )

This predicate succeeds when Path is the installation path of FASILL.



This predicate runs the FASILL interpreter with default options.


fasill( +Options )

This predicate runs the FASILL interpreter with a list of options Options.



This predicate runs the interactive mode of the FASILL interpreter.


run_fasill_arguments( +Options )

This predicate runs the list of FASILL arguments Options.


run_fasill_command( +Command )

This predicate runs the FASILL command Command.