team-worthwhile / worthwhile

PSE am KIT 2011/12: Programmverifikation (Team 2)
BSD 3-Clause "New" or "Revised" License
5 stars 3 forks source link

About

Worthwhile is an application that makes proving simple programs accessible and fun! It was developed as a project for the course "Praxis der Softwareentwicklung" at the University of Karlsruhe at the Institute for Theoretical Informatics.

Z3

Z3 is a theorem prover developed by Microsoft Research. A recent build for Linux is available on their website. To be able to use Z3 from within Worthwhile, you can either put the Z3 binary in your $PATH (named z3) or enter the path manually in the Worthwhile preferences (Window → Preferences → Worthwhile → Path to Z3 binary).

Building

Worthwhile is built on the Eclipse Platform. Java SE 6, Eclipse 3.7.1 and Maven 3 or later are required to build the project.

Worthwhile uses the Eclipse Xtext framework and the Xtext Typesystem framework. Therefore, to build a project, an Eclipse environment with these plugins installed is required. Itemis provides prebuilt Eclipse binaries with these plugins already installed on their website. The Xtext Typesystem plugins (Version 2.0-beta, available in the "Downloads" area of their Google Code page) should be placed in the plugins/ directory of your Eclipse installation.

The easiest way to run Worthwhile from source is launching it from within an existing Eclipse instance. Because for some reason, maven-eclipse-plugin requires all build artifacts to be in place when generating .project files for Eclipse, all projects have to be built and the build artifacts installed to the local Maven repository before generating the project files. If you have figured out a better way to do this, please let us know.

cd implementierung/src
mvn install -Dmaven.test.skip=true
mvn eclipse:eclipse

After this step has completed, open Eclipse, select File → Import... → Existing Projects into Workspace and choose the implementierung/src directory. Import all the projects and wait for Eclipse to stabilize in flight.

You might also need to add com.google.inject as a dependency to the product. Find edu.kit.iti.formal.pse.worthwhile.product/META-INF/MANIFEST.MF, open it, select the Dependencies tab and add com.google.inject as a dependency.

Nobody knows why, but to get everything to work you have to open edu.kit.iti.formal.pse.worthwhile.product/worthwhile.product, select the Dependencies tab and press the Add Required Plug-ins button. Now, switch back to the Overview tab and in the Testing section first select Synchronize and then Launch an Eclipse application. Boom! You're in for endless hours of fun with Worthwhile!