<?xml version="1.0"?>


<!-- Propositional Logic formulas are defined by atomic formula, and
boolean operator and, or, neg.  In this file, we consider that
operator "and" and "or" are associative. Using Morgan laws, it is
possible to have negation only on atomic formulas. We make this
restriction in this file.  

The negation symbol is not count in the size of the formula.
-->




<!DOCTYPE specification SYSTEM "seed.dtd">


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

  <union id="All"> <!-- defintion of a propositional formula -->
    <child idref="S"/> <!-- either an atomic formula-->
    <child idref="And"/> <!-- or the conjunction of two logical formulas-->
    <child idref="Or"/><!-- or the disjunction of two logical formulas-->
  </union> 

  <constants id="S"> <!-- defintion of the alphabet-->
    <symbol value="a"/>
    <symbol value="b"/>
    <symbol value="c"/>
    <symbol value="d"/>
    <symbol value="e"/>
    <symbol value="f"/>
    <symbol value="g"/>
    <symbol value="not a"/>
    <symbol value="not b"/>
    <symbol value="not c"/>
    <symbol value="not d"/>
    <symbol value="not e"/>
    <symbol value="not f"/>
    <symbol value="not g"/>
  </constants>

  <union id="nonAnd"> <!-- definition of non-conjunction logical formulas -->
    <child idref="Or"/><!-- or a disjunction-->
    <child idref="S"/> <!-- or a letter-->
  </union>


  <union id="nonOr"> <!-- definition of non-disjunction logical formulas -->
    <child idref="And"/><!-- either a conjunction -->
    <child idref="S"/> <!-- or a letter-->
  </union>


  <sequence id="And"> 
    <symbol value="and"/>
    <child idref="nonAnd"/>
  </sequence>

  <sequence id="Or"> 
    <symbol value="or"/>
    <child idref="nonOr"/>
  </sequence>


</specification>

