                   THE WILDFIRE VERIFICATION CHALLENGE

These files contain two TLA+ specifications:

   - A specification of the Alpha memory model.
   
   - A specification of the cache-coherence protocol used in 
     an Alpha multiprocessor code-named Wildfire.

The Wildfire protocol specification should implement the Alpha memory
model.  It doesn't because we have introduced a bug into it.  The
challenge problem is to find an execution that demonstrates the bug.
All that we will reveal about the bug is that it is a safety bug, so
it is demonstrated by a finite trace.  

We recommend that you keep track of the amount of time you spend on
the problem.  If you find the bug, or have any questions about the
problem, please contact Leslie Lamport at lamport@pa.dec.com.

The specifications files are all formal, machine-readable TLA+
modules.  Comments have been added to explain the specs, and to
explain the TLA+ constructs.  However, the explanations are brief and
some constructs are probably not explained.  Further information
about TLA+ is contained in the following two files:

  specifying.ps
  specifying.pdf
    This is a leisurely (60-page) introduction to TLA+ titled 
    "Specifying Concurrent Systems with TLA+".  It appeared in
    Calculational System Design, Manfred Broy and Ralf Steinbreuggen, 
    editors, IOS Press, pages 183-247.

  summary.ps
  summary.pdf
    This is a 7-page summary of TLA+ constructs and the standard 
    modules.

The specification of the Alpha memory model consists of about 215 lines
of TLA+ contained in the following files, which should be read in the
indicated order.

   AlphaInterface.tla 
   AlphaConstants.tla 
   InnerAlpha.tla 
   Alpha.tla 

The Wildfire protocol specification, which should be read after the
memory model specification, consists of an additional 720 lines of
TLA+.  It is in

   Wildfire.tla 

The specifications use the following standard TLA+ modules, which
are included.  

   Sequences.tla
   FiniteSets.tla
   Naturals.tla 
   ProtoReals.tla   (used in the Naturals module)
   Peano.tla        (used in the ProtoReals module)

The Naturals module defines the standard arithmetic operations and
also defines i..j to be the set of integers n with i \leq n \leq j
(where \leq means "less than or equal to").  The formal definitions of
these operators are not relevant to the challenge problem.

-----------------------------------------------------------------------------

The Wildfire protocol specification was written by Leslie Lamport,
Madhu Sharma, and Mark Tuttle.  The Alpha memory specification and an
earlier, more detailed Wildfire specification on which the current one
is based, were written by Leslie Lamport, Mark Tuttle, and Yuan Yu.
The Wildfire protocol was designed by Kourosh Gharachorloo, Madhu
Sharma, Simon Steely, and Steve van Doren.
  
last modified on Tue Jun 13 10:06:26 PDT 2000 by lamport
-----------------------------------------------------------------------------
