<?xml version="1.0" encoding="UTF-8"?>
<commits type="array">
  <commit>
    <parents type="array">
      <parent>
        <id>a76db666456ad02eca2c961df5bf914c78aed135</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/2eec147cd10c6bf1904b667391dca69bfee96c00</url>
    <id>2eec147cd10c6bf1904b667391dca69bfee96c00</id>
    <committed-date>2008-02-23T14:31:55-08:00</committed-date>
    <authored-date>2008-02-23T13:52:08-08:00</authored-date>
    <message>Saving changelog for 1.0-&#945;1</message>
    <tree>e860ac6ade92a4466c41c796fb0a3f61a8f4c7e0</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>dfb1e4759e2f4a652a78c8cec1d0879cfe3a8b4c</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/a76db666456ad02eca2c961df5bf914c78aed135</url>
    <id>a76db666456ad02eca2c961df5bf914c78aed135</id>
    <committed-date>2008-02-23T14:11:52-08:00</committed-date>
    <authored-date>2008-02-23T13:47:46-08:00</authored-date>
    <message>Updated copyright notices

I've updated all of the copyright notices to contain 2008 as an
additional copyright year.</message>
    <tree>f0dd640464d258608a1b9c1ada691300103fba58</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>4107273a02d97eae36825e9b5674454f1d1c8a22</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/dfb1e4759e2f4a652a78c8cec1d0879cfe3a8b4c</url>
    <id>dfb1e4759e2f4a652a78c8cec1d0879cfe3a8b4c</id>
    <committed-date>2008-02-23T14:11:47-08:00</committed-date>
    <authored-date>2008-02-23T13:44:35-08:00</authored-date>
    <message>Fixes to basic documentation set

I've made some final changes to the README, INSTALL, and TODO files in
preparation for the 1.0-&#945;1 release.  I've also fixed the COPYING file
so it contains the correct license (LGPL 2.1).  Finally, I've removed
the empty ChangeLog file, since instead I will be placing git
shortlogs into the doc/changelog directory for each release.</message>
    <tree>fa7cde5a7b9d3aa47f14a0059558c89965f16ccb</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>7d2338e7489d617f5c14dd196d63f6fc236c64b2</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/4107273a02d97eae36825e9b5674454f1d1c8a22</url>
    <id>4107273a02d97eae36825e9b5674454f1d1c8a22</id>
    <committed-date>2008-02-23T13:11:54-08:00</committed-date>
    <authored-date>2008-02-23T13:11:54-08:00</authored-date>
    <message>Adding description of $ identifiers to CSP&#8320; reference

This patch describes the intention of $ identifiers as temporary
processes needed while compiling high-level languages into CSP&#8320;.</message>
    <tree>f9a757a5fa4b2b476ed552ca9212b07716ceba98</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>f98fba8374d44174f5a03cb851b63bf95dcd16c2</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/7d2338e7489d617f5c14dd196d63f6fc236c64b2</url>
    <id>7d2338e7489d617f5c14dd196d63f6fc236c64b2</id>
    <committed-date>2008-02-23T13:10:38-08:00</committed-date>
    <authored-date>2008-02-23T12:34:17-08:00</authored-date>
    <message>Adding technical overview article

This patch adds an article giving an overview of the design and
implementation of the library.</message>
    <tree>0100b5f82e32c987570f769665c0e56e9dbf4d95</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>a8391d97b67980a173eaab4c6ef6b3bdb081f726</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/f98fba8374d44174f5a03cb851b63bf95dcd16c2</url>
    <id>f98fba8374d44174f5a03cb851b63bf95dcd16c2</id>
    <committed-date>2008-02-23T09:25:37-08:00</committed-date>
    <authored-date>2008-02-23T09:24:41-08:00</authored-date>
    <message>Renaming TAU and TICK so that they are hidden

Previously, the &#964; and &#10003; methods were given the names &#8220;TAU&#8221; and &#8220;TICK&#8221;
when created during the initialization of a csp_t object.  However,
these names mean that the events were unintentionally visible to a
CSP&#8320; script.  This made it possible to, for instance, use a prefix
statement to explicitly add a &#964; or &#10003; to a CSP LTS, instead of only
being able to introduce them using the CSP operators.  I've renamed
them to &#8220;%TAU&#8221; and &#8220;%TICK&#8221;; since the percent character isn't a valid
identifier character in CSP&#8320;, they are now correctly hidden in the
script.  It's now possible to define your own events called &#8220;TAU&#8221; and
&#8220;TICK&#8221;; however, these user-defined events won't actually have the
semantics of &#964; and &#10003;, so you shouldn't do that.</message>
    <tree>7d36479da8d3eb758c89913239d51e68e682cf25</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>47bd1e6212e510df940dc701455a60e9e000ee7f</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/a8391d97b67980a173eaab4c6ef6b3bdb081f726</url>
    <id>a8391d97b67980a173eaab4c6ef6b3bdb081f726</id>
    <committed-date>2008-02-20T16:50:29-08:00</committed-date>
    <authored-date>2008-02-20T16:43:21-08:00</authored-date>
    <message>Initial documentation

This patch adds a simple manpage for the csp0 utility that simply
redirects the user to &#8220;csp0 help&#8221;, and an article describing the CSP&#8320;
file format.  We use asciidoc for all of the documentation (both
articles and manpages), and the documentation targets are installed
during &#8220;make install&#8221;.</message>
    <tree>346dd001fd9a3b786d2fe3e6919cd2036683cd3f</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>66280415c9dfea5e2c32bc817fdafd7ee0be92fe</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/47bd1e6212e510df940dc701455a60e9e000ee7f</url>
    <id>47bd1e6212e510df940dc701455a60e9e000ee7f</id>
    <committed-date>2008-02-20T16:41:13-08:00</committed-date>
    <authored-date>2008-02-18T20:38:59-08:00</authored-date>
    <message>Improvements to build infrastructure

The build infrastructure now adds a version tag to the libhst library
(currently 0.0.0), and I've added a script that creates a source
tarball using git-archive.</message>
    <tree>340266dc551cdbe3a4c616f6e739bdd2e78fd9dd</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>513004b8f7ea870d8932d46cf7f5123b26ff220b</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/66280415c9dfea5e2c32bc817fdafd7ee0be92fe</url>
    <id>66280415c9dfea5e2c32bc817fdafd7ee0be92fe</id>
    <committed-date>2008-02-18T21:03:20-08:00</committed-date>
    <authored-date>2008-02-18T19:15:00-08:00</authored-date>
    <message>CSP&#8320; command-line utility

Added an installed command-line utility for processing CSP&#8320; scripts.
Initially it has &#8220;help&#8221;, &#8220;lts&#8221;, and &#8220;assert&#8221; commands.  If many more
commands are added it might be worth refactoring it a bit, but for now
it's fine as it is.</message>
    <tree>dd3f26569342c94db326516a46a1554051e1989e</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>f91b2f590b4a6445b4e04bae5e36a075aab2cc27</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/513004b8f7ea870d8932d46cf7f5123b26ff220b</url>
    <id>513004b8f7ea870d8932d46cf7f5123b26ff220b</id>
    <committed-date>2008-02-17T11:59:41-08:00</committed-date>
    <authored-date>2008-02-17T11:59:41-08:00</authored-date>
    <message>Fixed strict-aliasing warning in release builds

The release builds, which turn on compiler optimatizations, generate a
strict aliasing warning when compiling the parser files.  This is
because the scanner is written in terms of a &#8220;least common
denominator&#8221; Bison semantic type.  We are careful to define all of the
Bison semantic types so that they begin with the same elements as the
one used by the scanner.  However, the typecase that we use when
calling the lexer violates the strict aliasing constraints, which
don't allow you to perform type punning using pointer casts.  To get
around this, I've turned off the strict aliasing optimizations for
these compilation units.</message>
    <tree>4572ff737d44b72ef6fab5823e42820906bdd739</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>c8a839d8a0dd0c55e8f58073f070596447578b10</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/f91b2f590b4a6445b4e04bae5e36a075aab2cc27</url>
    <id>f91b2f590b4a6445b4e04bae5e36a075aab2cc27</id>
    <committed-date>2008-02-17T11:56:35-08:00</committed-date>
    <authored-date>2008-02-17T11:56:35-08:00</authored-date>
    <message>Traces refinement

This patch adds support for checking traces refinement.  The algorithm
used is described in [Roscoe94, &#167;2.2].  As with previous patches, this
algorithm currently only works with the traces model.

  [Roscoe94] A. W. Roscoe.  &#8220;Model-checking CSP&#8221;.  In A. W. Roscoe,
     editor, /A classical mind: Essays in honour of C. A. R. Hoare/,
     pages 353&#8211;378.  Prentice-Hall, 1994.</message>
    <tree>920ecdd560e1700d63af39ec68a1f8439ba7387e</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>638887f81d6ab79b0bd8132293210cca063b3d28</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/c8a839d8a0dd0c55e8f58073f070596447578b10</url>
    <id>c8a839d8a0dd0c55e8f58073f070596447578b10</id>
    <committed-date>2008-02-16T15:08:28-08:00</committed-date>
    <authored-date>2008-02-16T12:48:31-08:00</authored-date>
    <message>Fixed recursion and memoization support

The CSP operator implementations were broken when it came to
recursion.  This was easiest to see with interleaving (see the
tests/csp/05-rec-interleave1 test case), which would go into an
infinite loop when you tried to compile it.  I've fixed this for all
of the operators (with test cases).  As a result, I also fixed the
memoization code, so that both versions of each operator are memoized.
(In the case where a process has already been allocated for the
operation, I've implemented this a single &#964; transition to the memoized
version.)</message>
    <tree>a6b5cec51886379e3b6562b97520890834e5847a</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>ad5974e8e3e58028b47ccb0ceac88127049328df</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/638887f81d6ab79b0bd8132293210cca063b3d28</url>
    <id>638887f81d6ab79b0bd8132293210cca063b3d28</id>
    <committed-date>2008-02-16T10:18:23-08:00</committed-date>
    <authored-date>2008-02-15T16:41:41-08:00</authored-date>
    <message>Traces normalization

This patch adds support for normalizing LTS.  The algorithm used is
described in [Roscoe94, &#167;2.1], and combines the prenormalization and
bisimulation code from previous patches.  Normalized LTSs are now
constructed in stages; you can prenormalize as many initial source
states as you wish, but once you finalize the normalization, no more
prenormalizations are allowed.

As with previous patches, this algorithm currently only works with the
traces model.

  [Roscoe94] A. W. Roscoe.  &#8220;Model-checking CSP&#8221;.  In A. W. Roscoe,
     editor, /A classical mind: Essays in honour of C. A. R. Hoare/,
     pages 353&#8211;378.  Prentice-Hall, 1994.</message>
    <tree>071bd9105e3c5a1c62744c01ab06d7ba423c6f32</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>18ad4b130b033df4865322d44df880d76133cc08</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/ad5974e8e3e58028b47ccb0ceac88127049328df</url>
    <id>ad5974e8e3e58028b47ccb0ceac88127049328df</id>
    <committed-date>2008-02-16T10:18:23-08:00</committed-date>
    <authored-date>2008-02-13T17:00:31-08:00</authored-date>
    <message>Compilation warnings are now errors

I've added the -Wall and -Werror GCC flags to catch all compilation
warnings as fatal errors.  Several files needed modifications to
remove lingering warnings.</message>
    <tree>264bf2cea25db5ad63132a537c2a66512ef3a82c</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>8e7d848843e553530a1b1575fa0e312605f9edf2</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/18ad4b130b033df4865322d44df880d76133cc08</url>
    <id>18ad4b130b033df4865322d44df880d76133cc08</id>
    <committed-date>2008-02-16T10:17:15-08:00</committed-date>
    <authored-date>2008-02-11T20:22:48-08:00</authored-date>
    <message>Traces bisimulation

This patch adds support for bisimulating an LTS.  The algorithm used
is described in [Roscoe94, &#167;2.1, Stage 2].  We'll use this
bisimulation algorithm against a prenormalized LTS to generate the
final normalized LTS; however, the algorithm is generic, and can be
applied to any LTS.

As with previous patches, this algorithm currently only works with the
traces model.

  [Roscoe94] A. W. Roscoe.  &#8220;Model-checking CSP&#8221;.  In A. W. Roscoe,
     editor, /A classical mind: Essays in honour of C. A. R. Hoare/,
     pages 353&#8211;378.  Prentice-Hall, 1994.</message>
    <tree>792eadabbc11ddd963f0c429e723e14d0e08cb03</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>923f82ed36e08cde4229ba3d221ab76baa51ab89</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/8e7d848843e553530a1b1575fa0e312605f9edf2</url>
    <id>8e7d848843e553530a1b1575fa0e312605f9edf2</id>
    <committed-date>2008-02-13T16:49:10-08:00</committed-date>
    <authored-date>2008-02-11T16:14:01-08:00</authored-date>
    <message>Equivalence classes

This patch adds support for equivalence classes.  An equivalence
class is a set of sets, where each member of an inner set are
thought to be &#8220;equal&#8221; in some way.  Methods are available for
adding states to an equivalence class and for merging existing
equivalence classes.  Test cases are provided.</message>
    <tree>5f93c73e56c9113a3613d43682d0429c5e02d4bd</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>4b411f413fb3a2791d0d99554540ded1bb754682</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/923f82ed36e08cde4229ba3d221ab76baa51ab89</url>
    <id>923f82ed36e08cde4229ba3d221ab76baa51ab89</id>
    <committed-date>2008-02-12T15:34:58-08:00</committed-date>
    <authored-date>2008-02-08T19:00:11-08:00</authored-date>
    <message>Adding &#8220;alias&#8221; CSP0 statement

This patch adds an &#8220;alias&#8221; statement to the CSP0 language, which
allows you to provide a new name for an existing process.</message>
    <tree>2ee8de2b66074c5d179c7e6802f3cdaf6d0a112d</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>a79c975b4a3cf1222f8440eb97ae6d272e255de5</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/4b411f413fb3a2791d0d99554540ded1bb754682</url>
    <id>4b411f413fb3a2791d0d99554540ded1bb754682</id>
    <committed-date>2008-02-12T15:28:45-08:00</committed-date>
    <authored-date>2008-02-08T18:36:36-08:00</authored-date>
    <message>Prenormalization of CSP scripts

This patch adds support for prenormalizing CSP scripts.  This is
basically just a thin wrapper that uses the existing LTS
prenormalization routines; however, this required some minor changes
to how a normalized LTS refers to its source LTS.</message>
    <tree>4a4872f41042956267403803a9b92eaa1d2264b8</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>4a003b433e0becb6bbfb522eb858cd13543b5fc7</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/a79c975b4a3cf1222f8440eb97ae6d272e255de5</url>
    <id>a79c975b4a3cf1222f8440eb97ae6d272e255de5</id>
    <committed-date>2008-02-11T17:53:35-08:00</committed-date>
    <authored-date>2008-02-08T18:32:25-08:00</authored-date>
    <message>Normalized LTS output now includes STOP states

The output routine for normalized LTSs was looping through the LTS
graph to decide which states to include in the &#8220;mapping&#8221; section.
Since STOP-equivalent states have no outgoing edges, they don't appear
in the LTS graph, and therefore didn't appear in the output.  This
patch fixes this behavior.</message>
    <tree>c34badcea4e4a7b9c2e94069f699cc970428b61a</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>196017897368a6e7b2c1774cd71c338cf58264c0</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/4a003b433e0becb6bbfb522eb858cd13543b5fc7</url>
    <id>4a003b433e0becb6bbfb522eb858cd13543b5fc7</id>
    <committed-date>2008-02-11T17:53:35-08:00</committed-date>
    <authored-date>2008-02-06T17:05:49-08:00</authored-date>
    <message>Initial support for LTS prenormalization

This patch adds support for prenormalizing an LTS.  The algorithm used
is described in [Roscoe94, &#167;2.1, Stage 1].  The nodes in a
prenormalized LTS each represent a set of states from the original
LTS, and each node is guaranteed to have at most one outgoing
transition for each event.

The prenormalization algorithm isn't complete yet, however, since it
only supports the traces model.

  [Roscoe94] A. W. Roscoe.  &#8220;Model-checking CSP&#8221;.  In A. W. Roscoe,
     editor, /A classical mind: Essays in honour of C. A. R. Hoare/,
     pages 353&#8211;378.  Prentice-Hall, 1994.</message>
    <tree>35b691f2560304dea3f089e68f4d9d7ea399af51</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>6b64051bfe84fde8e561bd87b9457a12a2b4c28e</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/196017897368a6e7b2c1774cd71c338cf58264c0</url>
    <id>196017897368a6e7b2c1774cd71c338cf58264c0</id>
    <committed-date>2008-02-11T17:52:36-08:00</committed-date>
    <authored-date>2008-02-05T18:45:24-08:00</authored-date>
    <message>Refactoring LTS graph into separate class

This patch extracts the LTS's inner event&#8594;stateset map into a separate
class.  This will allow us to use this map class on its own when we
prenormalize an LTS.  As part of this, I've also gone through and made
sure that every time we declare a shared_ptr to a class, we also
declare a shared_ptr to a const version of the class.</message>
    <tree>a00925bda81a1e1c287e7760df8b6957d52d92f5</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>1bf996a90932af6e843b277539c635a9d4ac5fbd</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/6b64051bfe84fde8e561bd87b9457a12a2b4c28e</url>
    <id>6b64051bfe84fde8e561bd87b9457a12a2b4c28e</id>
    <committed-date>2008-02-11T17:52:18-08:00</committed-date>
    <authored-date>2008-02-02T08:29:26-08:00</authored-date>
    <message>Divergent nodes in an LTS

This patch provides a function for finding the divergent nodes in an
LTS.  A node is divergent if it is possible to execute an infinite
sequence of a particular event from it; this is encoded in an LTS by a
cycle that is reachable from the node.  We use an algorithm based on
depth-first search to find the divergent nodes in an LTS; this
algorithm was devised by Michael Goldsmith and is described in
[Roscoe94, &#167;2.2].

  [Roscoe94] A. W. Roscoe.  &#8220;Model-checking CSP&#8221;.  In A. W. Roscoe,
     editor, /A classical mind: Essays in honour of C. A. R. Hoare/,
     pages 353&#8211;378.  Prentice-Hall, 1994.</message>
    <tree>cf937d1551577809b1d3c0ea0530f6a3336a48d3</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>9f2acf07ad2a3115a264a8c017156ee5f867cb6d</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/1bf996a90932af6e843b277539c635a9d4ac5fbd</url>
    <id>1bf996a90932af6e843b277539c635a9d4ac5fbd</id>
    <committed-date>2008-02-11T17:50:46-08:00</committed-date>
    <authored-date>2008-01-31T15:04:37-08:00</authored-date>
    <message>Event closure

As the first part of implementating the normalization algorithm for
LTSs, I've written the code to find the closure of a set of states for
a particular event.  The closure is the set of nodes that can be
reached from any of the initial nodes by following any sequence of
that event.  When we get to CSP normalization, we'll be looking
specifically for &#964; closures.

The pseudo-code algorithm is:

  CLOSURE(initial_nodes, event): closure_nodes
    seen = &#8709;
    closure_nodes = &#8709;
    queue = initial_nodes
    for x &#8712; queue:
      seen &#8746;= {x}
      closure_nodes &#8746;= {x}
      queue &#8726;= {x}
      for y &#8712; afters(x, event):
        if y &#8713; seen:
          queue &#8746;= {y}</message>
    <tree>5f8027f1335b9b674c3286c8726ee684447e3f73</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>5c6448a46d8aa1f64f886ebfccad1bb63e6c026c</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/9f2acf07ad2a3115a264a8c017156ee5f867cb6d</url>
    <id>9f2acf07ad2a3115a264a8c017156ee5f867cb6d</id>
    <committed-date>2008-01-31T14:18:09-08:00</committed-date>
    <authored-date>2008-01-31T14:18:09-08:00</authored-date>
    <message>Moving CSP operator definitions into a subdirectory

This patch refactors the code base, making things a bit cleaner by
placing the CSP operator definitions into their own subdirectory.</message>
    <tree>c4e78d0a52e90b65e20eba0a0f5c35690f78d977</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>95ffa7136f93564ad191871eb46b57ecb753bdf9</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/5c6448a46d8aa1f64f886ebfccad1bb63e6c026c</url>
    <id>5c6448a46d8aa1f64f886ebfccad1bb63e6c026c</id>
    <committed-date>2008-01-31T13:20:25-08:00</committed-date>
    <authored-date>2008-01-31T13:20:25-08:00</authored-date>
    <message>Operational semantics for renaming

This patch adds support for the rename operator, including a
corresponding CSP0 statement and test cases.</message>
    <tree>ac141b57eb511ba93a6a8ba6d4f946a357c5a8bc</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>8915ce3c263e539adcd1a8b3d7b558a26659c4ca</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/95ffa7136f93564ad191871eb46b57ecb753bdf9</url>
    <id>95ffa7136f93564ad191871eb46b57ecb753bdf9</id>
    <committed-date>2008-01-31T12:19:00-08:00</committed-date>
    <authored-date>2008-01-31T11:59:01-08:00</authored-date>
    <message>Operational semantics for hiding

This patch adds support for the hide operator, including a
corresponding CSP0 statement and test cases.</message>
    <tree>b95486bb6436881cf66ea5f64390c163f2ab2739</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>8a3eada2da7389d04ef2f9049055d2a8f85badf2</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/8915ce3c263e539adcd1a8b3d7b558a26659c4ca</url>
    <id>8915ce3c263e539adcd1a8b3d7b558a26659c4ca</id>
    <committed-date>2008-01-31T12:18:50-08:00</committed-date>
    <authored-date>2008-01-29T14:25:44-08:00</authored-date>
    <message>Using Bison for all parsing routines

Bison is now used to implement all of the parsing routines.  We don't
use Flex for the scanner, since the Flex buffering routines made it
difficult to scan only part of an input stream.  Since our grammar is
relatively simple, it was easier to write a custom lexer that uses the
underlying buffering of the istream classes.

As a result of this change, the alphabets in a CSP0 script should now
contain event names instead of event numbers, which was the originally
desired behavior.</message>
    <tree>f71f51046bbe31aab84933c7daeb2b55caeaa36b</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>a14cde9a5d048d72a676f2c9094da909b79fe22d</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/8a3eada2da7389d04ef2f9049055d2a8f85badf2</url>
    <id>8a3eada2da7389d04ef2f9049055d2a8f85badf2</id>
    <committed-date>2008-01-29T14:40:55-08:00</committed-date>
    <authored-date>2008-01-26T15:37:00-08:00</authored-date>
    <message>Refactoring test cases to use ctest

The test cases all used shell scripts to execute the test executable
for many different inputs.  This logic has been moved into the cmake
descriptions to consolidate things.  It also makes the output of &#8220;make
tests&#8221; more useful, since the different input files are visible as
separate test cases.</message>
    <tree>c8fbaf593de4240f9b66d3b0457e6ffc15cc7358</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>c01308e703de3654ae1ae3c8ac46634899b0ff88</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/a14cde9a5d048d72a676f2c9094da909b79fe22d</url>
    <id>a14cde9a5d048d72a676f2c9094da909b79fe22d</id>
    <committed-date>2008-01-29T14:40:54-08:00</committed-date>
    <authored-date>2008-01-26T15:00:54-08:00</authored-date>
    <message>Using cmake for the build system

This patch replaces the autotools with a cmake-based build system.
Instructions for building the source can be found in the README and
INSTALL files.  I had to rename the test directory (to &#8220;tests&#8221;) so
that it doesn't conflict with cmake's default test Makefile target.</message>
    <tree>d45992d53665e01b562085cc5209078a628b8922</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>d1d79a6ea5443bf5a1f0bd3dd4c4359278468712</id>
      </parent>
    </parents>
    <author>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </author>
    <url>http://github.com/dcreager/hst/commit/c01308e703de3654ae1ae3c8ac46634899b0ff88</url>
    <id>c01308e703de3654ae1ae3c8ac46634899b0ff88</id>
    <committed-date>2008-01-29T14:40:54-08:00</committed-date>
    <authored-date>2008-01-20T10:42:44-08:00</authored-date>
    <message>Operational semantics for alphabetized parallel

This patch adds support for the alphabetized parallel operator,
including a corresponding CSP0 statement and test cases.  Like with
interface parallel, the CSP0 statement currently requires the
alphabets to be specified using numbers, rather than their symbolic
names, which needs to be fixed.</message>
    <tree>2d4a4dcb1e4de1757ffd05a7d9b7e6d9b28212f6</tree>
    <committer>
      <name>Douglas Creager</name>
      <email>dcreager@alum.mit.edu</email>
    </committer>
  </commit>
</commits>
