Skip to content

Isweet/sym-while

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sym-while, Symbolic Execution for an IMP-like Language

Building

The build has three dependencies:

  1. You must have OPAM

  2. You must have ocamlfind and ocamlbuild:

    % opam install ocamlfind % opam install ocamlbuild

  3. You must have Z3 with the OCaml bindings. The OCaml bindings can only be installed from a source build.

Make sure you have done (1) and (2) before you do (3). The source build will detect if you have OPAM/ocamlfind and install Z3 as an ocamlfind package if you do. See: https://github.com/Z3Prover/z3/tree/master/src/api/ml.

A note: follow carefully the instructions for building Z3. You must pass a specific flag (--ml) to the Python script in order to have the build generate and install the OCaml bindings.

After you have the dependencies, you should just be able to do:

% make

to build the executable.

This has only been tested on OCaml 4.04, so to be safe I recommend:

% opam switch 4.04

before you resolve any of the dependencies.

Examples

The res/ directory has a number of examples. You can run them concretely:

% ./symwhile.native --semantics concrete res/<example_program>

or symbolically:

% ./symwhile.native --semantics symbolic res/<example_program>

About

Symbolic Execution of `while` language

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published