program synthesis is possible
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
sketches
LICENSE
README.md
ex0.py
ex1.py
ex2.py

README.md

minsynth

These are supporting materials for a lecture on program synthesis in the Sketch tradition.

Install Z3 with its Python 3 bindings. With Homebrew:

$ brew install z3 --with-python

Install our only Python dependency, Lark:

$ pip3 install --user lark-parser

Witness the magic of Z3:

$ python3 ex0.py

Run a simple example to see how to synthesize values, which is stolen from Aws Albarghouthi's primer:

$ python3 ex1.py

Run a more complete synthesis engine for a little arithmetic language:

$ python3 ex2.py < sketches/s1.txt