IVy is a research tool intended to allow interactive development of protocols and their proofs of correctness and to provide a platform for developing and experimenting with automated proof techniques. In particular, IVy provides interactive visualization of automated proofs, and supports a use model in which the human protocol designer and the automated tool interact to expose errors and prove correctness.
Перейти к файлу
Ken McMillan e8331f19ad new gui does leader example pretty well 2016-05-06 16:38:44 -07:00
bin merged master changes into gui_refactor branch 2016-05-02 13:03:39 -07:00
doc rearranging example files and adding gitignore files 2016-04-08 12:16:02 -07:00
examples working on transition widget in new gui 2016-05-03 18:39:58 -07:00
ivy new gui does leader example pretty well 2016-05-06 16:38:44 -07:00
lib/emacs adding mixord and "delegate to" 2016-04-26 18:34:58 -07:00
notebooks adding examples, notebooks 2015-12-28 13:09:12 -08:00
src new gui does leader example pretty well 2016-05-06 16:38:44 -07:00
test working on ivy_ui_cti.py 2016-05-04 16:45:06 -07:00
.gitattributes adding .gitattributes 2015-12-27 21:03:08 -08:00
.gitignore Added .gitignore 2016-02-14 14:07:52 +02:00
INSTALL adding examples, notebooks 2015-12-28 13:09:12 -08:00
README.md merged master changes into gui_refactor branch 2016-05-02 13:03:39 -07:00
license.txt adding license.txt 2015-12-27 21:16:33 -08:00

README.md

ivy

IVy is a research tool intended to allow interactive development of protocols and their proofs of correctness and to provide a platform for developing and experimenting with automated proof techniques. In particular, IVy provides interactive visualization of automated proofs, and supports a use model in which the human protocol designer and the automated tool interact to expose errors and prove correctness.

prerequisites

python 2.7

Get it from here or as part of your Linux distribution.

Z3

Following the instructions here to install Z3. Set the environment variable Z3DIR to the prefix at which you installed Z3. By defult this is /usr/local, in which case:

$ export Z3DIR = /usr/local

Python packages

Install the python packages ply and pygraphviz. On Ubuntu, install them like this:

$ sudo apt-get install python-ply python-pygraphviz

tcl/tk/tcldot

To use the Tk-based user interface, you need to install the python package tk, the tix widget set, and the tcldot package (part of graphviz). On Ubuntu, install them all like this:

$ sudo apt-get install python-tk tix libgv-tcl

install

Get the source like this:

$ git clone https://github.com/Microsoft/ivy.git

Set the environment variable IVYDIR to point to the root of Ivy's source tree, like this:

$ cd ivy
$ export IVYDIR=`pwd`

Add Ivy's bin directory to your path, like this:

$ export PATH=`pwd`/bin:$PATH

run

Run Ivy on an example, using the Tcl/Tk user interface:

$ cd examples/ivy
$ ivy client_server.ivy

emacs mode

An emacs major mode for Ivy is available in lib/emacs/ivy-mode.el. Put this file somewhere in your emacs load path and add the following code to your .emacs:

(add-to-list 'auto-mode-alist '("\\.ivy\\'" . ivy-mode))
(autoload 'ivy-mode  "ivy-mode.el" "Major mode for editing Ivy code" t nil)