\documentclass[a4paper,11pt]{article}

\usepackage{hyperlatex}
\htmlcss{style.css}
\htmltitle{APRON numerical abstract domain library}
\htmlpanel{0}
\setcounter{htmlautomenu}{1}
\setcounter{htmldepth}{1}

\usepackage{xspace}
\T\usepackage{color}
\T\usepackage{pstricks,pst-node,pstcol}
\T\usepackage{graphicx}
\T\usepackage{mycolor}
\T\usepackage{amsmath}
\T\usepackage{amssymb}

%\usepackage{frames}

\newcommand{\ocaml}{\xlink{OCaml}{http://www.caml.org}\xspace}
\newcommand{\mlgmpidl}{\xlink{MLGMPIDL}{http://www.inrialpes.fr/pop-art/people/bjeannet/mlxxxidl-forge/mlgmpidl/}\xspace}
\newcommand{\camlidl}{\xlink{CamlIDL}{http://caml.inria.fr/camlidl/}\xspace}
\newcommand{\interproc}{\xlink{Interproc}{http://pop-art.inrialpes.fr/interproc/interprocweb.cgi}\xspace}

\title{APRON numerical abstract domain library}
\date{}
\author{}

\begin{document}

%\xmlattributes*{img}{align="left"}
%\xlink{\htmlimg{http://devel.inria.fr/logo_inria.png}{INRIA}}{http://www.inria.fr}

\xmlattributes*{img}{align="RIGHT"}
\htmlimg{poster.gif}{poster}

\xlink{Home page}{http://apron.cri.ensmp.fr/}

\maketitle

\section{About}

The APRON library is dedicated to the static analysis of the
numerical variables of a program by Abstract Interpretation. The
aim of such an analysis is to infer invariants about these
variables. like $1<=x+y<=z$, which holds during any execution of
the program. You may look at to the \interproc analyzer for an
online demonstration of static analysis.

The APRON library is intended to be a common interface to various
underlying libraries/abstract domains and to provide additional
services that can be implemented independently from the underlying
library/abstract domain, as shown by the poster on the right
(presented at the \xlink{SAS
  2007}{http://www2.imm.dtu.dk/sas2007/}). You may also read the
associated \xlink{flyer}{flyer.pdf}.

Currently, APRON provides a C interface and an \ocaml interface.
There also exists a C++ interface, which is more experimental.

The version 0.9.10 (10th septembre 2009) contains 3 libraries and 4 abstract domains:
\begin{itemize}
\item The BOX intervals library
\item The OCT octagon library
\item The NEWPOLKA Convex Polyhedra and Linear Equalities library 
\end{itemize}
It also provides an optional interface to the \xlink{Parma Polyhedra Library}{http://www.cs.unipr.it/ppl/}, which adds
\begin{itemize}
\item the Convex Polyhedra and Linear Congruences (grid) domains
\item the reduced product of NewPolka convex polyhedra and PPL
  linear congruences
\end{itemize}

\section{Demonstration}

The online \interproc static analyzer illustrates the use of the
APRON library in static analysis.

\section{License} 
APRON is a free software under LGPL license, except the wrappers
related to the PPL library, which follows the GPL license of the
PPL library.

\section{Documentation}

\begin{itemize}
\item On-line \xlink{C interface}{http://apron.cri.ensmp.fr/library/0.9.10/apron/apron.html} and \xlink{OCaml interface}{http://apron.cri.ensmp.fr/library/0.9.10/mlapronidl/index.html};
\item \xlink{C pdf}{http://apron.cri.ensmp.fr/library/0.9.10/apron.pdf} or \xlink{OCaml pdf}{http://apron.cri.ensmp.fr/library/0.9.10/mlapronidl.pdf};
\item \xlink{C example}{http://apron.cri.ensmp.fr/library/0.9.10/example1.c} or \xlink{OCaml example 1}{http://apron.cri.ensmp.fr/library/0.9.10/mlexample1.ml}/\xlink{OCaml example 2}{http://apron.cri.ensmp.fr/library/0.9.10/mlexample2.ml}/\xlink{OCaml example 3}{http://apron.cri.ensmp.fr/library/0.9.10/mlexample3.ml}. For the
  ML examples, they are almost identical, but the ones with the
  higher numbers use higher-level functions to define affine
  expressions and constraints.
\end{itemize}
  
\section{Download}

\subsection{Requirements}
\begin{itemize}
\item An ANSI C compiler (only gcc with ansi option has been
  tested)
\item The \xlink{GMP}{http://www.swox.com/gmp/} library, version 4.2 or up, and the \xlink{MPFR}{http://www.mpfr.org/} library, version 2.2 or up;
\item Optionally, \xlink{Parma Polyhedra
    Library}{http://www.cs.unipr.it/ppl/}, and
  \xlink{GMP}{http://www.swox.com/gmp/} compiled with
  \kbd{-enable-cxx} configuration option)
\item If you want the C++ interface (still experimental), GCC 4.1.2 or up
\item If you want to use the \ocaml interface, you need the \ocaml
  system, version 3.09 or up, the \camlidl 1.05 stub code
  generator for the OCaml interface, as well as GNU SED 4.1 or
  up, and GNU m4 (if you download from subversion repository).
  
  You also need \mlgmpidl, but it can be included if you opt for
  the ``distribution'' version of APRON (see below).
\end{itemize}

\subsection{Current version: 0.9.10}

\begin{itemize}
\item \xlink{Tar-gzipped
    sources}{http://apron.cri.ensmp.fr/library/apron-0.9.10.tgz}
\item \xlink{Tar-gzipped sources of both APRON and
    MLGMPIDL}{http://apron.cri.ensmp.fr/library/apron-dist-0.9.10.tgz}
\item \xlink{Changes}{http://apron.cri.ensmp.fr/library/Changes}
\item You can also access to the \xlink{SUBVERSION
    REPOSITORY}{http://svn.cri.ensmp.fr/svn/apron/}, by typing
  something like
  \begin{quote}
  \kbd{svn list http://svn.cri.ensmp.fr/svn/apron/apron/trunk}.
  \end{quote}
  
  If you want to access the distribution which references both APRON and MLGMPIDL (using subversion external links):
  \begin{quote}
    \kbd{svn list http://svn.cri.ensmp.fr/svn/apron/apron-dist/trunk}.
  \end{quote}
\end{itemize}
As the library may still contain subtle bugs, we strongly suggest
to be up-to-date with the most recent version.

\subsection{Older versions}
\begin{itemize}
\item 0.9.9 \xlink{Tar-gzipped
    sources}{http://apron.cri.ensmp.fr/library/apron-0.9.9.tgz}
\item 0.9.8 \xlink{Tar-gzipped
    sources}{http://apron.cri.ensmp.fr/library/apron-0.9.8.tgz}
\item 0.9.7 \xlink{Tar-gzipped
    sources}{http://apron.cri.ensmp.fr/library/apron-0.9.7.tgz}
\item 0.9.6 \xlink{Tar-gzipped
    sources}{http://apron.cri.ensmp.fr/library/apron-0.9.6.tgz}
\item 0.9.5 \xlink{Tar-gzipped
    sources}{http://apron.cri.ensmp.fr/library/apron-0.9.5.tgz}
\item 0.9.4 \xlink{Tar-gzipped
    sources}{http://apron.cri.ensmp.fr/library/apron-0.9.4.tgz}
\item 0.9.3 \xlink{Tar-gzipped
    sources}{http://apron.cri.ensmp.fr/library/apron-0.9.3.tgz}
\item 0.9.2 \xlink{Tar-gzipped
    sources}{http://apron.cri.ensmp.fr/library/apron-0.9.2.tgz}
\item 0.9.1 \xlink{Tar-gzipped
    sources}{http://apron.cri.ensmp.fr/library/apron-0.9.1.tgz}
\item 0.9.0 \xlink{Tar-gzipped
    sources}{http://apron.cri.ensmp.fr/library/apron-0.9.0.tgz}
\end{itemize}

\end{document}
