<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/technology/cnxml/schema/dtd/0.5/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" id="m11072">
  <name xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Reference: first-order WaterWorld</name>
  <metadata xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
  <md:version xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">2.12</md:version>
  <md:created xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">2003/03/16 18:00:00 US/Central</md:created>
  <md:revised xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">2009/01/21 15:05:00.001 US/Central</md:revised>
  <md:authorlist xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <md:author xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="greiner">
      <md:firstname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">John</md:firstname>
      
      <md:surname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Greiner</md:surname>
      <md:email xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">greiner@cs.rice.edu</md:email>
    </md:author>
      <md:author xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="phokion">
      <md:firstname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Phokion</md:firstname>
      
      <md:surname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Kolaitis</md:surname>
      <md:email xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">kolaitis@cse.ucsc.edu</md:email>
    </md:author>
      <md:author xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="moshe">
      <md:firstname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Moshe</md:firstname>
      
      <md:surname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Vardi</md:surname>
      <md:email xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">vardi@cs.rice.edu</md:email>
    </md:author>
      <md:author xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="matthias">
      <md:firstname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Matthias</md:firstname>
      
      <md:surname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Felleisen</md:surname>
      <md:email xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">matthias@ccs.neu.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
    <md:maintainer xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="greiner">
      <md:firstname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">John</md:firstname>
      
      <md:surname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Greiner</md:surname>
      <md:email xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">greiner@cs.rice.edu</md:email>
    </md:maintainer>
    <md:maintainer xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="ian">
      <md:firstname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Ian</md:firstname>
      
      <md:surname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Barland</md:surname>
      <md:email xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">ibarland@radford.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  

  <md:abstract xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">The domain axioms of WaterWorld in first-order logic.</md:abstract>
</metadata>


<content xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">

<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="para1">
  We summarize the details of how we choose to model WaterWorld boards
  in first-order logic: exactly what relations we make up, and the formal
  domain axioms which capture the game's rules.
</para>

<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="para2">
  This will follow almost exactly the same pattern as our
  <cnxn xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" document="m10528">WaterWorld model in propositional logic</cnxn>.
  However, we will take advantage of the additional flexibility provided
  by first-order logic.
</para>

<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="para3">
  Rather than modeling only the default 6×4 WaterWorld board;,
  we will be able to model any board representable by our relations.
  This will allow boards of any size and configuration, with one major
  constraint — each location can have at most three neighboring
  pirates.
</para>

<section xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="section1">
<name xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Domain and Relations</name>

<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="para4">
  Our domain is simply the set of all board locations.
  This set can be arbitrarily large — even infinite!
</para>

<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="para5">
  The board configuration is given by the binary “neighbor”
  relation <m:math><m:ci type="function">nhbr</m:ci></m:math>.
</para>

<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="para6">
  The next relations correspond directly to the
  <cnxn xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" document="m10528" target="waterworld-props">propositions</cnxn>
  in the propositional logic model.
</para>

<list xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="list1">
  <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
    Whether or not a location contains a pirate:
    <m:math><m:ci type="function">safe</m:ci></m:math>.
    This is a unary relation.
    <note xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" type="aside">
      We choose not to include a redundant relation
      <m:math><m:ci type="function">unsafe</m:ci></m:math>.
    </note>
  </item>

  <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
    Unary relations indicating the number of neighboring pirates:
    <m:math><m:ci type="function">has0</m:ci></m:math>, <m:math><m:ci type="function">has1</m:ci></m:math>, <m:math><m:ci type="function">has2</m:ci></m:math>, and <m:math><m:ci type="function">has3</m:ci></m:math>.
    <note xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" type="aside">
      Thus, we have our restriction to three unsafe neighbors.
      This will also be reflected in our domain axioms below.  See also
      <cnxn xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" document="m10727" target="waterworld-shows-relation">this problem</cnxn>
      for a discussion of how to avoid this restriction.
    </note>
  </item>
</list>

<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="para7">
  In addition, to have encode the domain axioms for an arbitrary domain,
  we also need an equality relation over our domain of locations.
  As is traditional, we will use infix notation for this relation,
  for example, <m:math><m:apply><m:eq/><m:ci>x</m:ci> <m:ci>y</m:ci></m:apply></m:math>.
  Furthermore, we will allow ourselves to write
  <m:math><m:apply><m:neq/> <m:ci>x</m:ci> <m:ci>y</m:ci></m:apply></m:math> as shorthand for
  <m:math><m:apply><m:not/><m:apply><m:eq/> <m:ci>x</m:ci> <m:ci>y</m:ci></m:apply></m:apply></m:math>.
  Thus, we do not need a distinct inequality relation.
</para>

<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="para8">
  Note that these relations describe the state of the underlying
  board  — the model  — and not our particular view of it.
  Our particular view will be reflected in which formulas 
  we'll accept as premises.  So we'll accept
  <m:math>
    <m:apply>
      <m:ci type="function">has2</m:ci>
      <m:ci>A</m:ci>
    </m:apply>
  </m:math>
  as a premise only when <m:math><m:ci>A</m:ci></m:math> has been exposed and shows a 2.
</para>

</section>


<section xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="section2">
<name xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">The domain axioms</name>

<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="para9">
  Many
  of our axioms correspond directly, albeit much more succinctly, with
  <cnxn xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" document="m10528" target="waterworld-rules">those</cnxn> of the propositional model.
  In addition, we have axioms that specify that our neighbor and equality
  relations are self-consistent.
</para>

<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="para10">
  Axioms asserting that the neighbor relation is anti-reflexive and
  symmetric:

  

  <list xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="list2">
    <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <m:math><m:apply><m:forall/><m:bvar><m:ci>x</m:ci></m:bvar>
        <m:apply><m:not/><m:apply><m:ci type="function">nhbr</m:ci> <m:ci>x</m:ci> <m:ci>x</m:ci></m:apply></m:apply>
      </m:apply></m:math>
    </item>

    <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <m:math><m:apply><m:forall/><m:bvar><m:ci>x</m:ci></m:bvar>
        <m:apply><m:forall/><m:bvar><m:ci>y</m:ci></m:bvar>
          <m:apply><m:implies/>
            <m:apply><m:ci type="function">nhbr</m:ci> <m:ci>x</m:ci> <m:ci>y</m:ci></m:apply>
            <m:apply><m:ci type="function">nhbr</m:ci> <m:ci>y</m:ci> <m:ci>x</m:ci></m:apply>
          </m:apply>
        </m:apply>
      </m:apply></m:math>
    </item>
  </list>
</para>

<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="para11">
  Axioms asserting that “=” truly is an equality relation,
  <foreign xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">i.e.</foreign>, it is reflexive, symmetric, and transitive.

  <list xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="list3">
    <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <m:math><m:apply><m:forall/><m:bvar><m:ci>x</m:ci></m:bvar>
        <m:apply><m:eq/><m:ci>x</m:ci> <m:ci>x</m:ci></m:apply>
      </m:apply></m:math>
    </item>

    <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <m:math><m:apply><m:forall/><m:bvar><m:ci>x</m:ci></m:bvar>
        <m:apply><m:forall/><m:bvar><m:ci>y</m:ci></m:bvar>
          <m:apply><m:implies/>
            <m:apply><m:eq/> <m:ci>x</m:ci> <m:ci>y</m:ci></m:apply>
            <m:apply><m:eq/> <m:ci>y</m:ci> <m:ci>x</m:ci></m:apply>
          </m:apply>
        </m:apply>
      </m:apply></m:math>
    </item>

    <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <m:math><m:apply><m:forall/><m:bvar><m:ci>x</m:ci></m:bvar>
        <m:apply><m:forall/><m:bvar><m:ci>y</m:ci></m:bvar>
          <m:apply><m:forall/><m:bvar><m:ci>z</m:ci></m:bvar>
            <m:apply><m:implies/>
              <m:apply><m:and/>
                <m:apply><m:eq/> <m:ci>x</m:ci> <m:ci>y</m:ci></m:apply>
                <m:apply><m:eq/> <m:ci>y</m:ci> <m:ci>z</m:ci></m:apply>
              </m:apply>
              <m:apply><m:eq/> <m:ci>x</m:ci> <m:ci>z</m:ci></m:apply>
            </m:apply>
          </m:apply>
        </m:apply>
      </m:apply></m:math>
    </item>
  </list>
</para>

<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="para12">
  Axioms asserting that the neighbor counts are correct.
  Each of these is of the form
  “if location <m:math><m:ci>x</m:ci></m:math> has <m:math><m:ci>n</m:ci></m:math> neighboring pirates, then there are <m:math><m:ci>n</m:ci></m:math>
    <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">distinct</emphasis>
    unsafe neighbors of <m:math><m:ci>x</m:ci></m:math>, and any <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">other distinct</emphasis>
    neighbor <m:math><m:ci>x</m:ci></m:math> is safe.”
  We use the equality relation to specify the distinctness of each
  neighbor.

  <list xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="list4">
    <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <m:math><m:apply><m:forall/><m:bvar><m:ci>x</m:ci></m:bvar>
        <m:apply><m:implies/>
          <m:apply><m:ci type="function">has0</m:ci> <m:ci>x</m:ci></m:apply>
          <m:apply><m:forall/><m:bvar><m:ci>y</m:ci></m:bvar>
            <m:apply><m:implies/>
              <m:apply><m:ci type="function">nhbr</m:ci> <m:ci>x</m:ci> <m:ci>y</m:ci></m:apply>
              <m:apply><m:ci type="function">safe</m:ci> <m:ci>y</m:ci></m:apply>
            </m:apply>
          </m:apply>
        </m:apply>
      </m:apply></m:math>
    </item>

    <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <m:math><m:apply><m:forall/><m:bvar><m:ci>x</m:ci></m:bvar>
        <m:apply><m:implies/>
          <m:apply><m:ci type="function">has1</m:ci> <m:ci>x</m:ci></m:apply>
          <m:apply><m:exists/><m:bvar><m:ci>a</m:ci></m:bvar>
            <m:apply><m:and/>
              <m:apply><m:ci type="function">nhbr</m:ci> <m:ci>x</m:ci> <m:ci>a</m:ci></m:apply>
              <m:apply><m:not/>
                <m:apply><m:ci type="function">safe</m:ci> <m:ci>a</m:ci></m:apply>
              </m:apply>
              <m:apply><m:forall/><m:bvar><m:ci>y</m:ci></m:bvar>
                <m:apply><m:implies/>
                  <m:apply><m:and/>
                    <m:apply><m:ci type="function">nhbr</m:ci> <m:ci>x</m:ci> <m:ci>y</m:ci></m:apply>
                    <m:apply><m:neq/> <m:ci>a</m:ci> <m:ci>y</m:ci></m:apply>
                  </m:apply>
                  <m:apply><m:ci type="function">safe</m:ci> <m:ci>y</m:ci></m:apply>
                </m:apply>
              </m:apply>
            </m:apply>
          </m:apply>
        </m:apply>
      </m:apply></m:math>
    </item>

    <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <m:math><m:apply><m:forall/><m:bvar><m:ci>x</m:ci></m:bvar>
        <m:apply><m:implies/>
          <m:apply><m:ci type="function">has2</m:ci> <m:ci>x</m:ci></m:apply>
          <m:apply><m:exists/><m:bvar><m:ci>a</m:ci></m:bvar>
          <m:apply><m:exists/><m:bvar><m:ci>b</m:ci></m:bvar>
            <m:apply><m:and/>
              <m:apply><m:ci type="function">nhbr</m:ci> <m:ci>x</m:ci> <m:ci>a</m:ci></m:apply>
              <m:apply><m:ci type="function">nhbr</m:ci> <m:ci>x</m:ci> <m:ci>b</m:ci></m:apply>
              <m:apply><m:neq/> <m:ci>a</m:ci> <m:ci>b</m:ci></m:apply>
              <m:apply><m:not/>
                <m:apply><m:ci type="function">safe</m:ci> <m:ci>a</m:ci></m:apply>
              </m:apply>
              <m:apply><m:not/>
                <m:apply><m:ci type="function">safe</m:ci> <m:ci>b</m:ci></m:apply>
              </m:apply>
              <m:apply><m:forall/><m:bvar><m:ci>y</m:ci></m:bvar>
                <m:apply><m:implies/>
                  <m:apply><m:and/>
                    <m:apply><m:ci type="function">nhbr</m:ci> <m:ci>x</m:ci> <m:ci>y</m:ci></m:apply>
                    <m:apply><m:neq/> <m:ci>a</m:ci> <m:ci>y</m:ci></m:apply>
                    <m:apply><m:neq/> <m:ci>b</m:ci> <m:ci>y</m:ci></m:apply>
                  </m:apply>
                  <m:apply><m:ci type="function">safe</m:ci> <m:ci>y</m:ci></m:apply>
                </m:apply>
              </m:apply>
            </m:apply>
          </m:apply>
          </m:apply>
        </m:apply>
      </m:apply></m:math>
    </item>

    <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <m:math><m:apply><m:forall/><m:bvar><m:ci>x</m:ci></m:bvar>
        <m:apply><m:implies/>
          <m:apply><m:ci type="function">has3</m:ci> <m:ci>x</m:ci></m:apply>
          <m:apply><m:exists/><m:bvar><m:ci>a</m:ci></m:bvar>
          <m:apply><m:exists/><m:bvar><m:ci>b</m:ci></m:bvar>
          <m:apply><m:exists/><m:bvar><m:ci>c</m:ci></m:bvar>
            <m:apply><m:and/>
              <m:apply><m:ci type="function">nhbr</m:ci> <m:ci>x</m:ci> <m:ci>a</m:ci></m:apply>
              <m:apply><m:ci type="function">nhbr</m:ci> <m:ci>x</m:ci> <m:ci>b</m:ci></m:apply>
              <m:apply><m:ci type="function">nhbr</m:ci> <m:ci>x</m:ci> <m:ci>c</m:ci></m:apply>
              <m:apply><m:neq/> <m:ci>a</m:ci> <m:ci>b</m:ci></m:apply>
              <m:apply><m:neq/> <m:ci>a</m:ci> <m:ci>c</m:ci></m:apply>
              <m:apply><m:neq/> <m:ci>b</m:ci> <m:ci>c</m:ci></m:apply>
              <m:apply><m:not/>
                <m:apply><m:ci type="function">safe</m:ci> <m:ci>a</m:ci></m:apply>
              </m:apply>
              <m:apply><m:not/>
                <m:apply><m:ci type="function">safe</m:ci> <m:ci>b</m:ci></m:apply>
              </m:apply>
              <m:apply><m:not/>
                <m:apply><m:ci type="function">safe</m:ci> <m:ci>c</m:ci></m:apply>
              </m:apply>
              <m:apply><m:forall/><m:bvar><m:ci>y</m:ci></m:bvar>
                <m:apply><m:implies/>
                  <m:apply><m:and/>
                    <m:apply><m:ci type="function">nhbr</m:ci> <m:ci>x</m:ci> <m:ci>y</m:ci></m:apply>
                    <m:apply><m:neq/> <m:ci>a</m:ci> <m:ci>y</m:ci></m:apply>
                    <m:apply><m:neq/> <m:ci>b</m:ci> <m:ci>y</m:ci></m:apply>
                    <m:apply><m:neq/> <m:ci>c</m:ci> <m:ci>y</m:ci></m:apply>
                  </m:apply>
                  <m:apply><m:ci type="function">safe</m:ci> <m:ci>y</m:ci></m:apply>
                </m:apply>
              </m:apply>
            </m:apply>
          </m:apply>
          </m:apply>
          </m:apply>
        </m:apply>
      </m:apply></m:math>
    </item>
  </list>
</para>

<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="para13">
  In addition, we want the implications to go the opposite way.
  Otherwise, each of <m:math><m:ci type="function">has0</m:ci></m:math>, <m:math><m:ci type="function">has1</m:ci></m:math>, <m:math><m:ci type="function">has2</m:ci></m:math>, and <m:math><m:ci type="function">has3</m:ci></m:math> could
  always be false, while still satisfying the above!
  For brevity, we elide the details in the following list:

  <list xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="list5">
    <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <m:math><m:apply><m:forall/><m:bvar><m:ci>x</m:ci></m:bvar>
        <m:apply><m:implies/>
          <m:apply><m:forall/><m:bvar><m:ci>y</m:ci></m:bvar>
            <m:apply><m:implies/>
              <m:apply><m:ci type="function">nhbr</m:ci> <m:ci>x</m:ci> <m:ci>y</m:ci></m:apply>
              <m:apply><m:ci type="function">safe</m:ci> <m:ci>y</m:ci></m:apply>
            </m:apply>
          </m:apply>
          <m:apply><m:ci type="function">has0</m:ci> <m:ci>x</m:ci></m:apply>
        </m:apply>
      </m:apply></m:math>
    </item>

    <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <m:math><m:apply><m:forall/><m:bvar><m:ci>x</m:ci></m:bvar>
        <m:apply><m:implies/>
          <m:mtext>…</m:mtext>
          <m:apply><m:ci type="function">has1</m:ci> <m:ci>x</m:ci></m:apply>
        </m:apply>
      </m:apply></m:math>
    </item>

    <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <m:math><m:apply><m:forall/><m:bvar><m:ci>x</m:ci></m:bvar>
        <m:apply><m:implies/>
          <m:mtext>…</m:mtext>
          <m:apply><m:ci type="function">has2</m:ci> <m:ci>x</m:ci></m:apply>
        </m:apply>
      </m:apply></m:math>
    </item>

    <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <m:math><m:apply><m:forall/><m:bvar><m:ci>x</m:ci></m:bvar>
        <m:apply><m:implies/>
          <m:mtext>…</m:mtext>
          <m:apply><m:ci type="function">has3</m:ci> <m:ci>x</m:ci></m:apply>
        </m:apply>
      </m:apply></m:math>
    </item>
  </list>
</para>

<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="para14">
  Axioms asserting that the neighbor counts are consistent.
  While redundant, including axioms like the following can be convenient.

  <list xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="list6">
    <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <m:math><m:apply><m:forall/><m:bvar><m:ci>x</m:ci></m:bvar>
        <m:apply><m:implies/>
          <m:apply><m:ci type="function">has0</m:ci> <m:ci>x</m:ci></m:apply>
          <m:apply><m:not/>
            <m:apply><m:or/>
              <m:apply><m:ci type="function">has1</m:ci> <m:ci>x</m:ci></m:apply>
              <m:apply><m:ci type="function">has2</m:ci> <m:ci>x</m:ci></m:apply>
              <m:apply><m:ci type="function">has3</m:ci> <m:ci>x</m:ci></m:apply>
            </m:apply>
          </m:apply>
        </m:apply>
      </m:apply></m:math>
    </item>

    <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <m:math><m:apply><m:forall/><m:bvar><m:ci>x</m:ci></m:bvar>
        <m:apply><m:implies/>
          <m:apply><m:ci type="function">has1</m:ci> <m:ci>x</m:ci></m:apply>
          <m:apply><m:not/>
            <m:apply><m:or/>
              <m:apply><m:ci type="function">has0</m:ci> <m:ci>x</m:ci></m:apply>
              <m:apply><m:ci type="function">has2</m:ci> <m:ci>x</m:ci></m:apply>
              <m:apply><m:ci type="function">has3</m:ci> <m:ci>x</m:ci></m:apply>
            </m:apply>
          </m:apply>
        </m:apply>
      </m:apply></m:math>
    </item>

    <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <m:math><m:apply><m:forall/><m:bvar><m:ci>x</m:ci></m:bvar>
        <m:apply><m:implies/>
          <m:apply><m:ci type="function">has2</m:ci> <m:ci>x</m:ci></m:apply>
          <m:apply><m:not/>
            <m:apply><m:or/>
              <m:apply><m:ci type="function">has0</m:ci> <m:ci>x</m:ci></m:apply>
              <m:apply><m:ci type="function">has1</m:ci> <m:ci>x</m:ci></m:apply>
              <m:apply><m:ci type="function">has3</m:ci> <m:ci>x</m:ci></m:apply>
            </m:apply>
          </m:apply>
        </m:apply>
      </m:apply></m:math>
    </item>

    <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <m:math><m:apply><m:forall/><m:bvar><m:ci>x</m:ci></m:bvar>
        <m:apply><m:implies/>
          <m:apply><m:ci type="function">has3</m:ci> <m:ci>x</m:ci></m:apply>
          <m:apply><m:not/>
            <m:apply><m:or/>
              <m:apply><m:ci type="function">has0</m:ci> <m:ci>x</m:ci></m:apply>
              <m:apply><m:ci type="function">has1</m:ci> <m:ci>x</m:ci></m:apply>
              <m:apply><m:ci type="function">has2</m:ci> <m:ci>x</m:ci></m:apply>
            </m:apply>
          </m:apply>
        </m:apply>
      </m:apply></m:math>
    </item>
  </list>
</para>

<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="para15">
  Note that this set of axioms is not quite complete, as explored in 
  <cnxn xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" document="m12353" target="ww-incomplete">an exercise</cnxn>.
</para>

</section> 

</content>
</document>
