@inproceedings{jackson2013formula, author = {Jackson, Ethan and Schulte, Wolfram}, title = {FORMULA 2.0: A Language for Formal Specifications}, booktitle = {Unifying Theories of Programming and Formal Engineering Methods}, year = {2013}, month = {August}, abstract = {FORMULA 2.0 is a novel formal specification language based on open-world logic programs and behavioral types. Its goals are (1) succinct specifications of domain-specific abstractions and compilers, (2) efficient reasoning and compilation of input programs, (3) diverse synthesis and fast verification. We take a unique approach towards achieving these goals: Specifications are written as strongly-typed open-world logic programs. They are highly declarative and easily express rich synthesis / verification problems. Automated reasoning is enabled by efficient symbolic execution of logic programs into constraints. This tutorial introduces the FORMULA 2.0 language and concepts through a series of small examples.}, publisher = {Springer Berlin Heidelberg}, url = {http://approjects.co.za/?big=en-us/research/publication/formula-2-0-language-formal-specifications/}, pages = {156-206}, }