Table of Contents

What's New

What Is GOAL

GOAL is a graphical interactive tool for defining and manipulating Büchi automata and temporal logic formulae. It also partially supports other variants of omega-automata. The GOAL tool can be used for educational purposes, helping the user get a better understanding of how Büchi automata work and how they are related to linear temporal logics. It may also be used to construct correct and smaller specification automata, supplementing model checkers such as SPIN that adopt the automata-theoretic approach. Since the release dated 2007-06-01, most functions can be accessed by programs or scripts, making GOAL convenient for supporting research.

The acronym GOAL was originally derived from “Graphical Tool for Omega-Automata and Logics”. It also stands for “Games, Omega-Automata, and Logics”, as we gradually add support for omega-regular games. Our long-term goal is for the tool to handle all the common variants of omega-automata and the logics that are expressively equivalent to these automata. Therefore, the GOAL tool will constantly be extended and improved; please come back once in a few months for a better version.

Announcements

The 2010-12-18 version marks the final major release of the first generation of GOAL since 2006-08-23. Subsequent releases of this generation (dated as 2010-12-18pl1, 2010-12-18pl2, and so on) will be mainly for fixing bugs or anomalous behaviors. Contact us if you are interested in obtaining the source code of the first generation.

The next generation of GOAL (starting from 2011-02-14) is a redesign with a new architecture and user interface. Several algorithms are reimplemented and numerous new functions are added.

Highlights of Features

For Automata

For Formulae

For Games

Others

Changes to GOAL can be found in the ChangeLog. Some FAQs are also provided.

License

The source code of the first generation is released per request under GPLv3. The binaries of GOAL are free to use, copy, and distribute for non-commercial purposes.

Download

Latest version: 2020-05-06 (click on the version date to download)

Previous versions can be found here.

Installation

The GOAL tool is implemented in Java. You must have a Java runtime (11 or above is required) on your machine; for recent versions of Mac OS, you may need to install the JDK, not just the runtime.

Versions from 2011-02-14

Versions up to 2010-12-18

The first generation of GOAL (versions up to 2010-12-18) is packaged as a .jar file. To run the tool in Windows, simply double click the .jar file; in Linux, type “java -jar goal_yyyy_mm_dd.jar” (double click might also work if you know how to set the appropriate system option).

Use Cases

Below are a few use cases of the GOAL tool:

  1. Preparing Büchi automaton diagrams for slides/papers/homework
  2. Checking correctness of a hand-drawn Büchi automaton
  3. “Hand-optimization” of a specification Büchi automaton
  4. Combining GOAL with SPIN
  5. Checking correctness of a Büchi complementation algorithm
  6. Utilizing the Büchi Store

Click here for more details.

Screenshots

Startup DialogTemporal formula editorAutomaton editorAlternating automaton editorGame graph editor

More screenshots.

Extensions

GOAL can be extended by plugins based on the Java Plugin Framework. Plugin examples and users' contributions can be found here.

Team Members

Current:

Former:

Acknowledgment

The classic automata and the graph modules of the first generation of GOAL (versions up to 2010-12-18) were adapted and extended from those of JFLAP. We thank Susan H. Rodger, the creator of JFLAP, at Duke University for granting us the permission to use and modify the JFLAP source code.

Related Publications

Contact

Please send all inquiries/comments to the following email address.

Thank you!