Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Main repository of the Tamarin prover for security protocol verification.

Relaxing constraints on 'text' dependency.

This change enables building Tamarin on recent Ubuntu installations,
e.g., 14.10.
latest commit c1f8d90dc0
Cas Cremers cascremers authored
Failed to load latest commit information.
case-studies-regression added multiset versions of Yubi* protocol to regression tests
data Revert "Merge branch 'feature-external-heuristic' into develop"
images Added third screenshot and thumbnail. Also added production notes.
interactive-only-src version bump to
lib Revert "Merge branch 'feature-external-heuristic' into develop"
misc Revert "Merge branch 'feature-external-heuristic' into develop"
src Revert "Merge branch 'feature-external-heuristic' into develop"
.ghci fix #121: display delayed variants as formulas
.gitignore Add .cabal sandbox file to .gitignore
.hgignore rename tool directory to 'tamarin-prover'
AUTHORS Updating e-mail address Cas Cremers.
CHANGES fix #8: add Tutorial.spthy, reference MANUAL, and InvariantsExample.s…
LICENSE preparing for release
Makefile Build into a cabal sandbox. cleanup/reorganize protocols models
Setup.hs notes on better --version flag
doc fix #8: add Tutorial.spthy, reference MANUAL, and InvariantsExample.s…
etc make symlinks windows compatible by changing
examples make symlinks windows compatible by changing rename tool directory to 'tamarin-prover'
tamarin-prover.cabal Relaxing constraints on 'text' dependency.

The Tamarin prover repository

This README describes the organization of the repository of the Tamarin prover for security protocol verification. Its intended audience are interested users and future developers of the Tamarin prover. For installation and usage instructions of the Tamarin prover see:


We use Linux and Mac OS X during the development of Tamarin. Windows can be used for development, but the directory layout simplification introduced via symbolic links will not work.

As of October 1st, 2012, we started organizing our branches according to We moreover use the Haskell coding style from

The simplest way to start developing is to call make force-install in the root directory of this repository. This installs the repository versions of the tamarin-prover package and its supporting libraries tamarin-prover-utils, tamarin-prover-term, and tamarin-prover-theory in the global package database. Once this succeeded, compatible versions of all libraries required by the tamarin-prover are also installed in the global package database. Thus, you can load the Main module of the Tamarin prover by typing ghci Main in the root directory of this repository. Note that, if GHCi prints

*** WARNING: /home/repositories/git/github/meiersi/tamarin-prover/.ghci is writable by someone else, IGNORING!

, then you have to chmod g-w the directory . and the GHCi configuration file .ghci.

Note that we welcome all contributions, e.g., further protocol models. Just send us a pull request.

Version Numbering Policy

We use version numbers with four components.

  • The first component is the major version number. It indicates complete rewrites of the codebase.
  • The second component is the minor version number. We use odd minor version numbers to denote development releases intended for early adopters. We use even minor version numbers to denote public releases, which are also published on Hackage.
  • The third component indicates bugfix releases.
  • The fourth component indicates documentation and meta-data changes.

We ensure that the external interface of a version of the Tamarin prover is backwards compatible with the external interface of all versions that agree on the major and minor version number.

We announce all releases of the Tamarin prover on:


The manual is data/doc/MANUAL. It is part of every installation of the Tamarin prover.

Example Protocol Models

All example protocol models are found in the directory


, which is also symlinked as ./examples. All models that we consider stable are part of every installation of the Tamarin prover. See tamarin-prover.cabal for the list of installed protocols. We use the following sub-directories to organize the models.

csf12/         the AKE case studies from our CSF'12 paper.
classic/       classic security protocols like the ones from
loops/         experiments for testing loop-invariants and protocols with
               non-monotonic state
related_work/  examples from related work on protocols with loops or
               non-monotonic state
experiments/   all other experiments
ake/           more AKE examples including ID-based and tripartite group KE
               protocols based on bilinear pairing
features/      (small) models that demonstrate a given feature

Feel free to add more sub-directories and describe them here.

In general, we try use descriptive names for files containing the models. We also document all our findings as comments in the protocol model. Moreover, we use the following header in all files to make their context more explicit.

   Protocol:    Example
   Modeler:     Simon Meier, Benedikt Schmidt
   Date:        January 2012

   Status:      working

   Description of protocol.

Something went wrong with that request. Please try again.