<?xml version="1.0"?>


<!--  CCS was introduced by Milner
[M80] to describe interaction in concurrent systems. 
Processes on a set of actions \{a1,a2,a3\} are defined by the folloing grammar

P -> nil | ai | ai.P | P+P | P parallel P | P[ai\aj] | P\{ai}

Bibliography [M80] R. Milner, A Calculus of Communicating Systems,
Springer Verlag, 1980.  -->


<!DOCTYPE specification SYSTEM "seed.dtd">

<specification>
  <start idref="All"/> 

  <union id="All"> <!-- defintion of a LTL formula-->
    <child idref="N"/> <!-- either the Nil Process -->
    <child idref="Action"/> <!-- or an Action-->
    <child idref="Dot"/> <!-- or the Sequential composition -->
    <child idref="Par"/> <!-- or the parallel composition-->
    <child idref="Rename"/> <!-- or renaming of actions-->
    <child idref="Rest"/> <!-- or restriction -->
  </union> 

  <constants id="Action"> <!-- defintion of Action-->
    <symbol value="a1"/>
    <symbol value="a2"/>
    <symbol value="a3"/>
  </constants>

  <constants id="N"> <!-- defintion of the Nil process-->
    <symbol value="nil"/>
  </constants>


  <binary id="Dot"> <!-- sequential -->
    <symbol value="."/>
    <child idref="All"/>
    <child idref="All"/>
  </binary>
  
  <binary id="Par"> <!-- parallel -->
    <symbol value="parallel"/>
    <child idref="All"/>
    <child idref="All"/>
  </binary>
  
  <binary id="Rest"> <!-- restriction -->
    <symbol value="\"/>
    <child idref="All"/>
    <child idref="Action"/>
  </binary >

  <binary id="Rename"> <!-- Renaming -->
    <symbol value="Rename"/>
    <child idref="All"/>
    <child idref="H"/>
  </binary>

  <binary_neq id="H"> <!-- binary encoding for renaming -->
    <symbol value="by"/>
    <child idref="Action"/>
  </binary_neq>

</specification>
