a collection of tools for GR(1) synthesis and related activities
C Yacc Shell Makefile Python Tcl Other
Latest commit cc69f86 Jul 12, 2016 @slivingston slivingston DOC: Update GitHub URLs
The gr1c repository and issue tracker are now hosted at

The current release documentation is now hosted at



Scott C. Livingston slivingston@cds.caltech.edu

gr1c is a collection of tools for GR(1) synthesis and related activities. Its core functionality is checking realizability of and synthesizing strategies for GR(1) specifications, though it does much more.

The citable URL is http://scottman.net/2012/gr1c

The public Git repo can be cloned from https://github.com/tulip-control/gr1c.git Documentation for the latest release is at https://tulip-control.github.io/gr1c

Examples and Documentation

Many examples are provided. Begin by reading examples/README.md.

The main documentation is built from .md files under the doc directory and API comments in the source code. It is possible to read these files directly, i.e., without building and browsing HTML files.

$ make doc

will run Doxygen and place the result in doc/build.

Building and installation

We use Travis CI to build and test gr1c from the current source code in the repository. Build Status


  • CUDD, the CU Decision Diagram package by Fabio Somenzi and others.


The following are optional dependencies. Each item is followed by a summary of what is to be gained by building gr1c with it.

  • GNU Readline, for an enhanced command prompt during interactive sessions. Note that there is a built-in prompt.

Building from Source

Detailed installation instructions are in the repository at doc/installation.md For the most recent release, a copy of these instructions is on the Web at https://tulip-control.github.io/gr1c/md_installation.html

For Linux x86_64 and Mac OSX, try the following.

$ ./get-deps.sh
$ make cudd
$ make all
$ make check

Consider using make -j N where N is the number of jobs to run simultaneously. The last command runs a test suite. Each testing step is reported if the environment variable VERBOSE is set to 1. E.g., try VERBOSE=1 make check. Finally,

$ make install expinstall

The latter expinstall installs experimental tools, like grpatch. The default installation prefix is /usr/local. Adjust it by invoking make with something like prefix=/your/new/path.


This is free software released under the terms of the BSD 3-Clause License. There is no warranty; not even for merchantability or fitness for a particular purpose. Consult LICENSE.txt for copying conditions.