            SARL: Symbolic Algebra and Reasoning Library
                     http://vsl.cis.udel.edu/sarl
            
=============================== ABOUT =================================

SARL is a Java library for symbolic algebra and reasoning.
It is intended primarily to support symbolic execution.

The SARL API provides for the creation and manipulation of typed
symbolic expressions, and the ability to verify the validity of first
order formulas.

SARL uses ("under the hood") automated theorem provers (currently
CVC3 and CVC4) to assist in the verification tasks.  It also is
very effective at placing symbolic expressions in a canonical form,
in order to easily tell if two expressions are equivalent.  It
supports real (mathematical) integers and reals, as well as
Herbrand integers and reals (where the numeric operations are
treated as uninterpreted functions). 

SARL is written by Stephen Siegel, University of Delaware.
Please send comments, bug reports, feature requests, etc., to
siegel@udel.edu.
            
============================ INSTALLATION =============================

If you only want to use SARL (and not contribute to its development)
you only need to download/install the automated theorem provers
CVC3 and CVC4 and then download sarl.jar and place it in the CLASSPATH
for your application.  See file INSTALL in this directory.

In order for SARL to find CVC3 and CVC4, the executables (cvc3 and
cvc4) must be in your PATH the first time you use SARL.

You will also need a Java 8 SDK.

If you want to install from source (e.g., because you want to develop
SARL), it is a bit more complicated, because SARL requires
all of the following:

 - Java SE 8 SDK
   http://www.oracle.com/technetwork/java/javase/downloads/index.html
 - Apache Ant (build tool):
   http://ant.apache.org 
 - CVC3 (automated theorem prover):
   http://www.cs.nyu.edu/acsys/cvc3/download.html
 - CVC4 (automated theorem prover):
   http://cvc4.cs.nyu.edu/downloads/
 - Z3 (automated theorem prover)
   http://z3.codeplex.com/SourceControl/latest
 - JUnit (automated testing framework):
   https://github.com/KentBeck/junit/downloads
 - Hamcrest (a library of "matchers", required by JUnit):
   https://github.com/hamcrest/JavaHamcrest
 - JaCoCo (Java code coverage analysis tool):
   http://www.jacoco.org

See file INSTALL in this directory for detailed instructions on
installing SARL from source.

============================== LICENSES ===============================

SARL is copyright 2013,2014, Stephen F. Siegel,
Verified Software Laboratory, University of Delaware.
It is distributed under the terms of the GNU
Lesser General Public License (LGPL).
See the file COPYING.LESSER.
