Cyclone Logo

Cyclone: A Graph-Based Specification Language

Code up your verification tasks using a simple graph notation.

  • Graph Oriented Spec – Visualise problems and exchange ideas using graphs.
  • Simple Notation – No need to learn complex formalisms before writing your specification.
  • Online Editor – Use our newly designed online editor to unlock the full experience of Cyclone.
/**
 * A simple counting machine has three instructions only:
 * increment the counter.
 * decrement the counter.
 * reset the counter.
 */
graph CountingMachine { 
    int c;

    start normal node R { c = 0;     }
    normal       node I { c = c + 1; }
    normal       node D { c = c - 1; }

    edge { R -> I, D    }
    edge { I -> I, D, R }
    edge { D -> I, D, R }

    goal{
        /**
         * Find all possible of instruction sequences that use 6 instructions 
         * to make the counter=3 and must use the decrement instruction somewhere.
         */

        assert c == 3;
        enumerate for 5 condition (D) reach (R,I,D)
    }
}

Using Cyclone

Useful Resources

This website is designed by Haoyang Lu.
Cyclone is designed by Hao Wu.
Principles of Programming Research Group, Maynooth University.
Last Updated: Thu Feb 13 2025