Skip to content
Compiler and runtime of the Smten language for functional programming and orchestration of SMT queries
Haskell C++ C TeX Tcl
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Smten (Developer) README
Richard Uhler <>
June 2014

Non-Developer Smten Installation
If you do not wish to modify the smten implementation, it is easier to build
and install smten using distributed cabal packages.
See tutorials/T1-GettingStarted.txt for how to do this.

This document describes how to build the distributed cabal packages, which is
only needed if you desire to modify the smten implementation.

Configuring Smten for Development Build
Before building smten using the makefile, you must configure the build for your
system. This is done by creating the file "tclmk/local.tcl" containing
information about your system.

The following variables should be set in tclmk/local.tcl:
::env(PATH) - The PATH to use for executables
::env(LD_LIBRARY_PATH) - the ld library path
::GHC - the path the the ghc executable to use

For example, tclmk/local.tcl might look like:

set ::env(PATH) "/bin:/usr/bin:/home/ruhler/local/bin"
set ::env(LD_LIBRARY_PATH) "/home/ruhler/local/lib"
set ::GHC "/home/ruhler/local/bin/ghc"

Yices1, Yices2, STP and Z3
The tests for Smten currently require yices1, yices2, STP, and Z3 to be
installed. See the documentation in tutorial/T3-SMTBackends.txt
for information on how to install them.

Building Smten
Once smten is configured for build and the required SMT solvers are installed,
it can be built by running `make`. The following targets are supported:

  Build all the smten packages locally and run the test suites for them.
  For the location of the generated cabal distribution packages, run:
    find build -name "smten*.tar.gz"
  Build all the smten packages locally, run the test suites, and
  then install the packages into the current users account.

  Install the packages into the current users account without first building
  them locally. This requires you have already built the packages locally.

  Clean up the locally generated cabal packages.

  Remove the entire local 'home' directory, including any packages already
  installed locally which smten depends on.

The 'doc' directory contains mostly out-of-date documents. The most relevant
documents now are:

doc/todo.txt:: contains a brief list of known issues and planned work to do.
doc/history.txt:: contains the release history of smten.

For user documentation, consult the generated haddock documentation after
building the packages locally at build/home/.cabal/share/doc/index.html or 
build/smten-*/dist/doc/html/smten-*/index.html for the individual packages.
There are also some tutorials on using Smten in the 'tutorials' directory.

You can’t perform that action at this time.