<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/css" href="../../MD.css"?>
<!DOCTYPE MD PUBLIC "http://www.cs.bham.ac.uk/modules/MD.dtd" "../../MD.dtd">

<MD code="02489" academic-yr="2006">

<LastUpdate>16 Jan 2007</LastUpdate>

<Aims>
  <Aim>introduce some methods and tools which have
  been developed in recent years for verifying properties of
  hardware and software systems</Aim>
  <Aim>look at examples, both small-scale ones for classroom demonstration,
  and large-scale ones in which verification has been successful</Aim>
  <Aim>understand the limitations of current tools, and how they may be
  overcome in the future</Aim>
</Aims>

<Outcomes>
  <Outcome>use appropriate tools to verify and debug small-scale
  systems<Assessed>Examination</Assessed>
  </Outcome>
  <Outcome>understand and explain the principles and algorithms behind
  those tools<Assessed>Examination</Assessed>
  </Outcome>
  <Outcome>explain the application of the tools to the examples 
  introduced<Assessed>Examination</Assessed>

  </Outcome>
  <Outcome>appreciate the limitations of current techniques and tools,
  such as the state explosion problem, and current efforts to overcome
  them<Assessed>Examination</Assessed>
  </Outcome>
</Outcomes>

<Restrictions>
  <P>None</P>
</Restrictions>

<Prereqs>

  <P>None</P>
</Prereqs>

<Coreqs>
  <P>None</P>
</Coreqs>

<Teaching>
  <P>18 hrs lectures, 7 hrs examples classes/practical sessions</P>
</Teaching>

<ContactHrs>25</ContactHrs>

<Assessment>
  <Normal>1.5 hr examination (100%).</Normal>
</Assessment>

<Summary>The module introduces techniques and tools for verifying that
computer systems have the properties intended. The module covers:
reactive systems and their models; temporal logic; model checking
and algorithms; a selection of tools; examples of systems (concurrent programs,
communication protocols, embedded systems);
verification of properties of systems (safety, liveness
and fairness); the state explosion problem and approaches to it;
symbolic model checking.</Summary>

<Syllabus>
  <Topic>Introduction to model checking
    <Sub>Reactive systems</Sub>
    <Sub>Transition system models</Sub>
    <Sub>Invariant and reachability checking</Sub>
    <Sub>The logic CTL</Sub>
    <Sub>CTL model checking</Sub>
    <Sub>Real-time and probabilistic systems</Sub>
    <Sub>Symbolic model checking and BDDs</Sub>
   </Topic>
  <Topic>Software model checking
    <Sub>Foundational issues</Sub>
    <Sub>Assertions</Sub>
    <Sub>Stateful models</Sub> 
    <Sub>Predicate transformers</Sub>
    <Sub>Interaction models</Sub>
    <Sub>On-the-fly checking</Sub>
    <Sub>Abstraction and iterated refinement</Sub>
   </Topic>
</Syllabus>

<Books>
  <Book>
    <Title>Systems and Software Verification: Model-Checking Techniques and Tools Symbolic model checking</Title>
    <Author>Beatrice Berard et al</Author>
    <Publisher>Springer</Publisher>
    <Year>2001</Year>
  </Book>
  <Book>
    <Title>Logic in Computer Science: Modelling and Reasoning about 
    Systems, 2nd ed</Title>
    <Author>M. Huth and M. Ryan</Author>
    <Publisher>Cambridge University Press</Publisher>
    <Year>2004</Year>
  </Book>
  <Book>
    <Title>Model Checking</Title>
    <Author>Edmund M. Clarke, Orna Grumberg, Doron A. Peled</Author>
    <Publisher>The MIT Press</Publisher>
    <Year>2000</Year>
  </Book>
</Books>

<Links>
   
  <P><A href="http://www.cs.bham.ac.uk/~mzk/courses/AutoVeri-p1/index.html">Notes 
    for Prof. Kwiatkowska's section</A> (also available from the lecturer).</P>
  <!-- <P><A href="http://www.cs.bham.ac.uk/~mdr/smv_manual.ps">The SMV manual.</A></P> -->
  <P><A href="http://nusmv.irst.itc.it/"></A>NuSMV.</P>
  <P><A href="http://www.uppaal.com/"></A>UPPAAL.</P>
  <P><A href="http://www.cs.bham.ac.uk/~dxp/prism/"></A>PRISM.</P>
  <P><A href="http://cm.bell-labs.com/who/god/verisoft/"></A>Verisoft.</P>
  <P><A href="http://bogor.projects.cis.ksu.edu/"></A>Bogor.</P>
  <P><A href=" http://www.dcs.warwick.ac.uk/~aleks/gamechecker.htm"></A>GameChecker.</P>
  <P><A href=" http://www.microsoft.com/whdc/devtools/tools/sdv.mspx"></A>SDV.</P>

</Links>

</MD>
