This is the scaled up version of SCV, intended to be (eventually) usable for real Racket programs.
Install Z3 and set
Install Z3, then set
$Z3_LIB to the directory
libz3.dllif you're on Windows
libz3.soif you're on Linux
libz3.dylibif you're on Mac
Clone the repository:
git clone email@example.com:philnguyen/soft-contract.git
cd soft-contract/soft-contract raco pkg install
I will register this package on Racket Packages eventually.
raco scv to run the analysis on one example at
raco scv test/programs/safe/octy/ex-14.rkt
If the program is big and you want to print out something that looks like progress,
raco scv -p test/programs/safe/games/snake.rkt
To verify multiple files that depend on one another, pass them all as arguments. If you forget to include any file that's part of the dependency, it'll error out asking you to include the right one.
raco scv -p test/programs/safe/multiple/*.rkt
Generating benchmark results
To generate benchmark results for (sub-)test-suites, use
The outputs are in a form that can be conveniently copied to a latex document as a table.
For example, to run the occurence benchmarks, execute:
racket test/gen-table.rkt test/programs/safe/octy